IE 10的-ms-clear伪元素和IE5怪癖模式

Aro*_*ron 6 css quirks-mode internet-explorer-10

我正在开发一个遗留的Web应用程序,需要使用Internet Explorer的"IE5 Quirks Mode"(使用设置X-UA-Compatible: IE=5).

应用程序中的许多文本字段都有(应用程序生成的)"x"按钮来清除内容.在IE10中,IE还会生成一个"x"按钮来清除该字段,因此用户可以看到其中的两个.

本问题所述,您可以使用::-ms-clearCSS伪元素删除IE生成的"x" .不幸的是,这似乎不适用于IE5 Quirks模式:::-ms-clear伪元素的样式显示在开发人员工具中:unknown,并且IE生成的'x'继续出现.

除了重写应用程序以使用现代浏览器模式,有没有办法摆脱IE生成的'x'?

以下是在IE10下运行时在IE5 Quirks模式下重现问题的测试页:

<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=5">
        <style type="text/css">
            ::-ms-clear { width: 0; height: 0; }
        </style>
    </head>
    <body>Enter some text:<input></body>
</html>
Run Code Online (Sandbox Code Playgroud)

Lou*_*cci 3

尝试

input::-ms-clear { display: none; }
Run Code Online (Sandbox Code Playgroud)

或者

input::-ms-clear { visibility: hidden; }
Run Code Online (Sandbox Code Playgroud)

更黑客的做法可能是使用 margin-right 和 Overflow 属性

input { margin-right: -20px; overflow: hidden }
Run Code Online (Sandbox Code Playgroud)

  • `::-ms-clear` 甚至一开始就没有被识别,所以这什么也不做。 (3认同)