2010-10-28 40 views
1

奇怪的CSS行爲。 當我設置訪問顏色使用CSS(a.nav:懸停如下例),然後懸停不起作用,一旦鏈接被用戶訪問。但是,當我設置它的父元素的引用(.header a.nav:hover如下)它的作品。爲什麼?幫我理解奇怪的CSS行爲!

a.nav:visited{ 
color:yellow; 
} 

/*once the link is visited by user this rule not working*/ 
a.nav:hover{ 
color:red; 
} 

/*if we use this rule it works even after the link is visited*/ 
.header a.nav:hover{ 
color:red; 
} 

<div class="header"> 
<a class="nav" .. >test </a> 
</div> 
+0

適用於我:http://jsfiddle.net/9S9h5/ – poke 2010-10-28 09:24:33

回答

2

這聽起來像是specificity問題。你的CSS中有其他a僞選擇器嗎?如果有一個比a.nav:hover更具體的選擇器(比如.header a.nav:hover),那麼它將覆蓋它,而不管它在文件中的位置。

+0

官方的CSS2規範,以防有人想要閱讀它:http://www.w3.org/TR/CSS21/cascade.html#specificity (人們應該閱讀它!關於選擇器特異性的部分很容易理解) – 2010-10-28 10:11:19

+0

@Denilson謝謝你。我鏈接到上面的那個,因爲我認爲用星球大戰來解釋特異性是很棒的:) – Skilldrick 2010-10-28 12:53:03

0
a.nav:hover, 
a.nav:visited:hover{ 
color:red; 
} 

a.nav:hover{ 
color:red !important; 
} 

應該使其工作。