CSS顺序和Internet Explorer

5

我在动态加载CSS文件到IE浏览器时遇到了问题。

我有多个CSS文件,并且需要按照特定的顺序将这些文件添加到head标签中。例如,我有一个客户自定义的CSS文件,应该始终具有最高优先级,并且需要在读取客户信息时首先包含它。

因此,我的代码大致如下:

< head >  
     < link rel: "stylesheet",
        type: "text/css",
        href: "StartingCSS.css">  
     < link rel: "stylesheet",
        type: "text/css",
        href: CSSclient.CSS>  
< /head >  

在某个时刻,我需要在头部中包含另外一个css文件,该文件特定于另一个模块。使用prototype和JavaScript,我将这个文件作为第一个文件添加到头部中,因此我的代码如下:
< head >      
     < link rel: "stylesheet",
        type: "text/css",
        href: "MyModule.css">  
     < link rel: "stylesheet",
        type: "text/css",
        href: "StartingCSS.css">  
     < link rel: "stylesheet",
        type: "text/css",
        href: CSSclient.CSS>  
< /head >  

在普通的浏览器(比如Chrome或FF)中,CSS客户端文件仍然具有最高优先级,因为它是文档中的最后一个,但在IE中,最后插入的文件会获得优先权。
有人对此有好的建议吗? :)
谢谢,José

2
这些冒号不应该是等号吗?还需要那些逗号吗,或者是我漏掉了什么吗? - dougajmcdonald
同意,那段代码是你源代码中的还是你为了“易读性”而编辑过了? - Kyle
同意,这看起来甚至不像HTML... 或许在CSSclient.CSS周围加上双引号会有所帮助。 - Cyrille
你遇到了类似的问题吗?你找到解决方案了吗? - Joe Enzminger
1个回答

2
你加载CSS文件的顺序对样式应用的影响很小。应用于某个元素的样式取决于CSS规则中使用的选择器的特异性。较高特异性会覆盖较低特异性,即使具有较低特异性的样式在后面声明也是如此。
特异性可以看作是四位数字的组合形式(a,b,c,d),其中a优先于b,b优先于c,c优先于d。因此,(0,0,0,2)的特异性高于(0,0,0,1),(0,0,1,0)的特异性高于(0,0,0,2)。
只有当使用具有完全相同特异性的选择器时,样式声明的顺序(即样式表加载的顺序)才是重要的。

更新:

已更新链接,使用正确的URL。


你可以通过条件注释来针对IE浏览器进行定向。 - albert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接