IE Hack如何让IE跳过/避免在样式表中读取一行

时间:2012-01-23 14:17:46

标签: html internet-explorer internet-explorer-8

是否可以跳过Internet Explorer或避免在CSS样式表中读取一行?

我最关心IE8,但对任何版本的解决方案感兴趣。

3 个答案:

答案 0 :(得分:6)

为了防止IE8(及更早版本)阅读样式,只需在选择器中使用不支持的内容,并且所有其他浏览器都支持。

例如,将:root添加到您的选择器。这是一个例子:http://jsfiddle.net/mathias/kX6tR/

.foo { background: red; }
:root .foo { background: lime; }
IE9和所有其他浏览器都支持

:root,因此这是safe CSS hack

答案 1 :(得分:3)

总是更好地避免黑客攻击。在您的情况下,正确的做法是在单独的样式表中重新定义IE的CSS规则,并将其包含在主样式文件之后。

<link rel="stylesheet" href="nice_browsers.css" />
<!--[if IE]>
<link rel="stylesheet" href="dumb_ie.css" />
<![endif]-->

此外,普通浏览器不会下载第二个文件,因此没有额外的HTTP请求。主CSS文件将验证(如果你关心它 - 你可能应该这样做)

答案 2 :(得分:1)

另一种选择:

让IE读取样式表中的行,然后使用条件注释覆盖之后加载的特定样式表中的行:

http://www.quirksmode.org/css/condcom.html

这样你就可以让你的样式表免受选择器黑客攻击。