前言
最近写一个 chrome 插件,里面需要用到日期选择器,为了图轻便,便直接用了 H5的<input type="date">
,但这个有个问题,只能通过点击右侧那个图标才可以弹出日期选择框,这使用起来就非常不爽了。
网上找了很久都没找到一个有点用处的博客,最后只能自己一点点去尝试,如今问题解决了,就像记录下来给各位看看,希望能帮到大家~~~
解决点击输入框不弹出日期选择
思路:首先我们知道点击图标是可以弹出的,那么我们就可以将图标进行绝对定位并覆盖掉输入框,这不就可以变象实现了点击输入框不弹出日期选择吗?
实现:
<form class="my-form form-inline">
<div class="form-group input-group-sm">
<label for="exampleInputEmail1">开始时间</label>
<input type="date" class="form-control" id="startTime" placeholder="开始时间">
</div>
<div class="form-group input-group-sm">
<label for="exampleInputPassword1">结束时间</label>
<input type="date" class="form-control" id="endTime" placeholder="结束时间">
</div>
</form>
#startTime, #endTime{
position: relative;
}
#startTime::-webkit-calendar-picker-indicator,
#endTime::-webkit-calendar-picker-indicator{
position: absolute;
right: 0;
padding-left: calc(100% - 40px); // 我估计它本身也就40px吧,通过设置左内边距铺满输入框
padding-right: 10px; // 为了美观,右侧给它来点空隙
}
效果: