当然,这是一个很有用的功能,但是有没有办法禁用它呢? 例如,如果表单是一个单一的文本字段,并且它旁边已经有一个“清除”按钮,那么再加上x是多余的。在这种情况下,最好删除它。

这能做到吗?如果可以,怎么做?


为盒子设置::-ms-clear伪元素样式:

.someinput::-ms-clear {
    display: none;
}

我发现最好将宽度和高度设置为0px。否则,IE10会忽略字段上定义的padding (padding-right),这是为了防止文本在我覆盖在输入字段上的'X'图标上输入。我猜IE10在内部应用了输入的padding-right到::——ms-clear伪元素,隐藏伪元素并不能恢复输入的padding-right值。

这对我来说效果更好:

.someinput::-ms-clear {
  width : 0;
  height: 0;
}

我将把这个规则应用到所有文本类型的输入字段,这样以后就不需要重复了:

input[type=text]::-ms-clear { display: none; }

你甚至可以用just来表达不那么具体的意思:

::-ms-clear { display: none; }

在添加这个答案之前,我已经使用了后者,但我认为大多数人会更喜欢更具体的答案。两种解决方案都很有效。


你应该为::-ms-clear (http://msdn.microsoft.com/en-us/library/windows/apps/hh465740.aspx):

::-ms-clear {
   display: none;
}

你还可以为密码字段设置::-ms-reveal伪元素:

::-ms-reveal {
   display: none;
}

我认为值得注意的是,当页面在兼容模式下运行时,所有基于样式和CSS的解决方案都不起作用。兼容性模式渲染器忽略::-ms-clear元素,即使浏览器显示x. clear元素。

如果您的页面需要在兼容模式下运行,则可能会出现X显示。

在我的例子中,我正在使用一些第三方数据绑定控件,我们的解决方案是处理“onchange”事件,如果字段被x按钮清除,则清除备份存储。


在“time”输入中隐藏箭头和叉号:

#inputId::-webkit-outer-spin-button,
#inputId::-webkit-inner-spin-button,
#inputId::-webkit-clear-button{
    -webkit-appearance: none;
    margin: 0;
}