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