如何在 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 中的图像:

默认&lt;input type=date&gt;

按钮&lt;input type=date&gt;

Chrome 中的图片:

默认&lt;input type=date&gt;(悬停时)

按钮&lt;input type=date&gt;(悬停时)

有什么方法可以消除 chrome 上的悬停效果?

默认输入:

&lt;input type="date"  id="myInput"&gt;

用 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 上运行。 改变点击的工作方式是行为,而不是外观。不幸的是,您不太可能通过跨浏览器方式更改标准&lt;input type="date" /&gt; 上的行为。所以最好调整一些 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;
&lt;input type="date"  id="myInput"&gt;

【讨论】:

箭头会隐藏,但日期选择器不会在 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扩展程序中,如何更改弹出窗口的完整背景颜色?

如何更改 chrome 中文本框的焦点样式?

如何解决在chrome中自动完成表单后input出现黄色背景

如何更改 <input type=Date> 的特定日期的颜色? [复制]

如何在 iOS 上的 <input type=date> 上注册值更改事件

在Chrome与火狐中,输入框input类型为number时,如何去除掉的自带的上下默认箭头