如果IE版本小于8,我使用条件注释链接到css文件(让我们称之为“IEonly.css”)。我试图覆盖常规css文件中的一些属性。奇怪的是,IEonly.css将正确设置新的css属性,但它不会覆盖常规CSS文件中的属性!
(我正在尝试为IE7做这项工作)。
帮助!
编辑:我在css样式之后添加了一个!important,看它是否会有所帮助。它没有。答案 0 :(得分:6)
给定多个样式表(即使某些样式表与其他具有条件注释的浏览器隐藏),则the cascade的常规规则将适用。
确保您的选择器具有适当的特定性,并且您按正确的顺序应用样式表。
答案 1 :(得分:3)
如果在两个样式表中使用相同的选择器,那么只要将条件IE样式表放在常规样式表之后就应该没问题。如果你这样做并且你的IE表没有服用那么你可能需要编写更具体的选择器。
#sidebar #nav li a { }
而不是......
#nav li a { }
或
li a { }
答案 2 :(得分:1)
不要忘记您还可以使用!important
规则覆盖CSS定义。关于该规则的Here is the W3C documentation。
答案 3 :(得分:1)
也许您可以将样式表重新组织为默认的IE样式,并使用if !IE
条件作为“良好的浏览器”覆盖。
答案 4 :(得分:0)
根据我自己对类似问题的经验,我猜你的IEonly.css文件中某处隐藏着一些不好或遗漏的字符。追踪它们可能是一种真正的痛苦,所以请执行以下操作:
您还可以尝试阅读http://www.w3.org/TR/CSS2/cascade.html#important-rules以获取更多信息。
您可以发布一些代码供我们查看吗?那会有所帮助。
答案 5 :(得分:-1)
我在元素中添加了一个类,并在IEonly样式表中使用类选择器和常规样式表引用它。这导致IEonly样式声明覆盖常规声明。