2012-09-27 72 views
0

很難解釋的種類,所以這裏是一些代碼。由ID選擇的鏈接中的文本顏色覆蓋了不同ID的父鏈接顏色

所以我有這個CSS,這使得所有的鏈接一個橙色的顏色。它包含整個頁面。

#pageContent a:link,a:visited, a:hover, a:active { 
    color: #EE4036; 
} 

然後,我有內pageContent ID某處ID sideMenu的元素,

#sideMenu a:link, a:visited, a:hover, a:active{ 
    color:#58595B; 

} 

的問題是,由於某種原因,sideMenu的給定鏈路的顏色覆蓋pageContent的鏈接顏色爲AREN鏈接」 t sideMenu的孩子。

例如,如果我有

<div id="pageContent" > 
    <a>this text should be #EE4036</a> 
    <div id="sideMenu"> 
     <a>this text should be #58595B</a> 
    </div> 
</div> 

sideMenu的<a>文本內容將得到設置爲顏色#58595B如預期,但這樣會pageContent的,這是我不希望。

我對CSS有點新,所以覺得我錯過了一些超級明顯的規則,而谷歌根本沒有幫助。那麼,誰知道發生了什麼事?

回答

9

您需要的前綴與ID的每個選擇:

#sideMenu a:link, #sideMenu a:visited, #sideMenu a:hover, #sideMenu a:active { 
    color:#58595B; 
} 

目前,您的選擇說比賽「鏈接,與ID元素的後代‘slideMenu’,已訪問過的鏈接,鏈接,正在徘徊,並積極聯繫「。

基本上,當您使用逗號來創建group of selectors時,每個單獨的選擇器都是完全獨立的。他們之間沒有任何關係。

+0

@ gilly3 - 感謝語法高亮編輯。我希望它能更好地自動識別CSS。 –

+0

太棒了,謝謝。我知道這很簡單!我會盡快選擇你的答案,由於某種原因,它告訴我我需要等待7分鐘。 – Michael

+0

@詹姆斯 - 我也是......看起來很奇怪,它不能自動工作,即使在像這樣只被標記爲「css」的問題上。沒有歧義。 – gilly3

2

那麼,你實際上重新定義了相同的規則。您必須每次寫下#sideMenu#pageContent。它是:

#pageContent a:link, #pageContent a:visited, #pageContent a:hover, #pageContent a:active { 
    color: #EE4036; 
} 
#sideMenu a:link, #sideMenu a:visited, #sideMenu a:hover, #sideMenu a:active { 
    color: #58595B; 
} 

Voila。希望能幫助到你。

+0

這確實有幫助,但不幸的是其他人在你之前回答了它。給你一個upvote。 – Michael