协慌网

登录 贡献 社区

删除某些输入上的 IE10 的 “清除字段” X 按钮?

当然,这是一个有用的功能,但是有什么方法可以禁用它吗?例如,如果表单是单个文本字段,并且旁边已经有一个 “清除” 按钮,则也不需要 X。在这种情况下,最好将其删除。

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

答案

为框设置::-ms-clear伪元素的样式:

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

我发现最好将widthheight设置为0px 。否则,IE10 会忽略字段上定义的填充( padding-right ,该padding-right是为了防止文本在我覆盖在输入字段上的 “X” 图标上键入内容。我猜想 IE10 在内部将输入的padding-right应用于::--ms-clear伪元素,而隐藏伪元素并不会恢复到inputpadding-right值。

这对我来说更好:

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

我将此规则应用于 text 类型的所有输入字段,因此以后无需重复:

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

通过使用以下方法甚至可以降低具体性:

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

我甚至在添加此答案之前就使用了后者,但认为大多数人都希望比此更具体。两种解决方案都可以正常工作。