是否可以跳过Internet Explorer或避免在CSS样式表中读取一行?
我最关心IE8,但对任何版本的解决方案感兴趣。
答案 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
这样你就可以让你的样式表免受选择器黑客攻击。