.orange_link .orange_link .orange_link a { color: orange; }
.orange_link .orange_link a { color: orange;}
a:hover{ color: red;}
.orange_link a { color: orange;}
根据上次的结论:在IE6里,“a:hover”的优先级比“.orange_link a”高。说起来,a:hover还真是终极霸王的感觉~哈。
但是呢,很好玩的事情来咯。在IE6里面,“.orange_link .orange_link a”的优先级和“a:hover”一样高。请在IE6里面看下面的代码:
可以看到,“.green_link .green_link a”在“a:hover”后面,于是就生效了,而“.orange_link .orange_link a”在前面,就没生效。所以,它们是一个优先级的哦。
好了,最诡异的来了。我们试试看“.orange_link .orange_link .orange_link a”和“a:hover”的优先级。
结论是:IE6里,“.orange_link .orange_link .orange_link a”(三个class)的优先级比“a:hover”要高。
以上的结论在:visited和:active也成立,但是:link没有这样的bug。另外IE7和IE8beta1没有这个bug。
最后再补充一点就是,IE6中,“a#blue_link”或是“#blue_link”的优先级比a:hover要高。这点上它没有出错。
所以,在IE6里面关于链接伪类的bug真的很疯狂~~大家一定要小心。为了避免这种优先级的bug,在写CSS的时候,尽量用显式的:hover来定义样式,不要指望只用.class a就能改变a:hover。
总结一下IE6里链接伪类(:hover,:visited,:active)的优先级的bug:
a#id 或 #id
大于
.class .class .class a
大于
a:hover
等于
.class .class a
大于
.class a