如何在 chrome 中更改 <input type=date> 的外观
Posted
技术标签:
【中文标题】如何在 chrome 中更改 <input type=date> 的外观【英文标题】:How to remove arrows on hover of<input type=date> in Chrome [duplicate] 【发布时间】:2018-10-05 13:20:36 【问题描述】:我已经将日期选择器创建为一个按钮,当它悬停时,它在 chrome 浏览器中看起来很乱。可能是因为它在浏览器中的默认行为,但我可以更改 chrome 上的悬停效果吗?
Fire Fox 中的图像:
默认<input type=date>
按钮<input type=date>
Chrome 中的图片:
默认<input type=date>
(悬停时)
按钮<input type=date>
(悬停时)
有什么方法可以消除 chrome 上的悬停效果?
默认输入:
<input type="date" id="myInput">
用 CSS 编辑:
.date-picker-button
background: #8DBF42;
color: #fff;
position: relative;
cursor: pointer;
margin-bottom: 10px;
border: 2px solid #8DBF42;
font-size: 14px;
padding: 12px;
border-radius: 3px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-o-border-radius: 3px;
width: 300px;
.input-group
position: relative;
border: 2px solid #cdd7e1;
margin-bottom: 10px;
display: block !important;
width: 300px;
border: none;
.date-picker-button .date-picker-input
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
margin: 0;
background: #8DBF42;
border: none;
width: 300px;
padding-left: 55px;
.fa.fa-angle-down
float: right;
color: white;
font-size: 20px !important;
font-weight: 600;
top: 0px !important;
position: relative;
margin-right: 20px;
.fa-calendar-o
color: white !important;
z-index: 1;
top: 0px !important;
position: relative !important;
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="date-picker-button input-group">
<i class="fa fa-calendar-o" aria-hidden="true"></i>
<span>Select Date</span>
<input class="input-startdate date-picker-input hasDatepicker" name="effdate" id="dp1523936970319" aria-required="true" required="" type="date">
<i class="fa fa-angle-down" aria-hidden="true"></i>
</div>
【问题讨论】:
你已经看过了吗? ***.com/questions/22909969/… 你能添加你的css样式吗? @benams 我已经发布了 css 请看一下 Boostrap 为日期选择器提供自定义。您可以通过以下链接找到文档:eonasdan.github.io/bootstrap-datetimepicker。我在一些网络应用程序中使用了它,它可以在 IE、Edge 和 Chrome 上运行。 改变点击的工作方式是行为,而不是外观。不幸的是,您不太可能通过跨浏览器方式更改标准<input type="date" />
上的行为。所以最好调整一些 3rd 方的实现,比如 bootstrap、jQuery UI 等。
【参考方案1】:
试试这个,它会隐藏一切:
input#myInput::-webkit-calendar-picker-indicator display: none
input[type=date]::-webkit-inner-spin-button,
input[type=date]::-webkit-outer-spin-button
-webkit-appearance: none;
margin: 0;
【讨论】:
箭头会隐藏,但日期选择器不会在 chrome 中显示。 因为日期选择器只有在点击向下箭头后才会显示。 如果你需要箭头,忽略第一行。 我不需要箭头..是否可以在单击 chrome 浏览器按钮的任意位置时显示日期选择器? 非常感谢,我已经更改了我的元素并提供了所需的 css,这很有帮助。【参考方案2】:这是隐藏输入按钮的工作:
::-webkit-inner-spin-button,
::-webkit-calendar-picker-indicator
display: none;
-webkit-appearance: none;
<input type="date" id="myInput">
【讨论】:
箭头会隐藏,但日期选择器不会在 chrome 中显示。 因为日期选择器只有在点击向下箭头后才会显示。 @KhushbuVaghela 如果您提供 CSS 来重现此问题,修复会容易得多。 请看developer.mozilla.org/en-US/docs/Web/html/Element/input/date @VadimOvchinnikov 我已经用 css 编辑了问题,请在 chrome 上查看【参考方案3】:您可以按照这个答案:Method to show native datepicker in Chrome,它显示了如何在整个输入中拉伸箭头,然后允许单击输入字段中的任意位置来触发日期选择器。
【讨论】:
它工作得很好..但我已经改变了我的元素。谢谢..:)。以上是关于如何在 chrome 中更改 <input type=date> 的外观的主要内容,如果未能解决你的问题,请参考以下文章
如何解决在chrome中自动完成表单后input出现黄色背景
如何更改 <input type=Date> 的特定日期的颜色? [复制]