1

如果IE版本小于8,我正在使用条件注释来链接到一个css文件(我们称之为“IEonly.css”)。我试图覆盖一些属性常规的css文件。奇怪的是,IEonly.css会正确设置新的CSS属性,但它不会覆盖常规CSS文件中的属性!有条件的CSS文件不覆盖常规的CSS

(我试图让这个工作适用于IE7)。

帮助!

编辑:我添加了一个!重要的CSS风格后,看看是否会有所帮助。它没有。

+2

你能发表一个url和元素样式的例子吗? – 2010-05-27 19:40:59

+0

嗯...显然!重要的并不总是适用于IE ... – dmr 2010-05-27 19:48:56

回答

-1

我向元素添加了一个类,并在IEonly样式表上用类选择器和常规样式表引用它。这导致IEonly样式声明覆盖常规样式声明。

+2

你能发表一个代码的例子吗?常规的和IE覆盖。听起来好像在IE样式表中添加一个类时它的工作原理有问题。 – 2010-05-28 05:47:44

6

给定多个样式表(即使有些条件注释的其他浏览器隐藏了某些样式表),则会应用the cascade的常规规则。

确保您的选择器适当具体,并且按照正确的顺序应用样式表。

+0

不应该!重要的重写级联? – dmr 2010-05-27 19:33:24

+4

它构成级联的一部分(并且它很少是解决问题的最佳方法) – Quentin 2010-05-27 19:48:40

1

不要忘记,您也可以使用!important规则覆盖CSS定义。该规则的Here is the W3C documentation

+0

我试着添加一个!重要的。它没有帮助。 – dmr 2010-05-27 19:38:27

1

也许你可以重新组织样式表默认为IE样式,并使用if !IE条件为“良好的浏览器”覆盖。

3

如果您在两个样式表中使用相同的选择器,那么只要将条件IE样式表放在常规样式表之后,您应该没问题。如果你这样做,并且你的IE表格没有被使用,那么你可能需要编写更具体的选择器。

#sidebar #nav li a { } 

的,而不是...

#nav li a { } 

li a { } 
0

根据我自己的类似问题的经验,我猜想,有一些损坏或丢失字符在某处你潜伏IEonly.css文件。他们可能是一个真正的痛苦追查,所以做到以下几点:

  1. 暂时从IEonly.css中删除所有的CSS,除了你将用来覆盖正常的CSS的部分。测试,看看这是否有效。如果是这样,继续将代码粘贴回文件中,按照您认为合适的部分。希望你会发现这个问题。
  2. 如果您的覆盖在该文件中只存在该部分代码时无效,请确保您具有正确的选择器并且特异性正常。

您还可以尝试阅读http://www.w3.org/TR/CSS2/cascade.html#important-rules了解更多信息。

你可以发表一些代码给我们看看吗?这将有所帮助。