【问题标题】:IE 10's -ms-clear pseudo-element, and IE5 quirks modeIE 10 的 -ms-clear 伪元素和 IE5 怪癖模式
【发布时间】:2013-06-16 07:38:37
【问题描述】:

我正在开发一个需要使用 Internet Explorer 的“IE5 Quirks Mode”(使用X-UA-Compatible: IE=5 设置)的旧版网络应用程序。

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

this question 中所述,您可以使用::-ms-clear CSS 伪元素删除 IE 生成的“x”。不幸的是,这在 IE5 Quirks 模式下似乎不起作用:::-ms-clear 伪元素的样式在开发人员工具中显示为:unknown,并且 IE 生成的“x”继续出现。

除了重写应用程序以使用现代浏览器模式之外,还有什么办法可以摆脱 IE 生成的“x”?

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

<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>

【问题讨论】:

  • 必须改用应用程序生成的按钮吗?它们是否提供了某些 IE10 生成的功能没有的功能?因为我认为在这种情况下无法删除 IE10 生成的那些。
  • 应用程序生成的“x”按钮确实提供了一些其他功能,但看起来我们最好的解决方法是有条件地为 IE10 删除它们并找到另一种方法来触发相同的功能......跨度>
  • 肯定不会再有任何“需要”怪癖模式了???曾经阻止人们进入怪癖模式的一件事是盒子模型与标准如此不同,以至于转换工作量太大,但现在你可以只使用* {box-sizing:border-box;},标准模式将切换到使用旧的怪癖模式盒子模型没有抱怨。怪癖模式中还有什么会阻止你远离它——也许我们可以提供帮助,而不是试图帮助你继续生活在 1990 年代。
  • 我很想升级应用程序以在现代浏览器上运行,但它足够大,仅测试工作就很重要。对整个堆栈进行现代化改造的重写工作正在进行中,但旧野兽必须继续工作一段时间!不过,感谢box-sizing 属性的提示 - 我不熟悉。
  • 天啊....我正在使用 SharePoint 2010,它强制 IE8 呈现。也有这个问题。从事过去的技术工作很糟糕,您无法利用最新的功能。 =( 对我们来说,浏览器检查已经不再是过去式了。

标签: css internet-explorer-10 quirks-mode


【解决方案1】:

试试

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

或者

input::-ms-clear { visibility: hidden; }

更骇人听闻的 hack 可能是使用 margin-right 和 overflow 属性

input { margin-right: -20px; overflow: hidden }

【讨论】:

  • ::-ms-clear 甚至一开始都没有被识别,所以这没有任何作用。
  • 确实,::-ms-clear 根本无法识别,不幸的是,“hacky”选项也不起作用。
  • 当然无法识别。这就是 quirks 模式的全部意义—— Quirks 模式有 IE5 的 CSS 版本;它会删除所有比浏览器更新的 CSS 功能。
  • @Aron - Aron 你不能使用 CSS 来隐藏应用程序生成的清除按钮而不是 IE10 生成的按钮吗?
  • @Spudley 明白,但由于浏览器在 IE5 模式下使用 IE10 功能,我正试图找到一种方法让它停止。
猜你喜欢
  • 1970-01-01
  • 2016-04-17
  • 2012-12-30
  • 2013-10-27
  • 1970-01-01
  • 2012-10-20
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
相关资源
最近更新 更多