2012-06-19 83 views
3

我正在更新someones網站。他們的標記選擇<a>標記是這樣的:CSS樣式不'級聯'?

#wrapper a{color: red;} 

這很好。但是,如果我創建包裝內的<div>,並給它<a>標籤我自己的造型如:

.mydiv a{color: white;} 

它只是不工作 - 在我<div>color:white得到由顏色覆蓋:紅色包裝,即使。 mydiv css位於我的外部樣式表的#wrapper css下面。還有什麼其他的造型 - 背景顏色,邊框等 - 工作正常!

回答

13

這被稱爲specificity

id屬性的選擇比用class屬性(前點到單個元件,但後者指向多個元素)選擇更具體的,所以用id選擇優先於你不管訂購。

你的選擇必須以覆蓋其他選擇更具體:

#wrapper .mydiv a{color: white;} 
+0

+1,打我吧。 – Aaron

+0

謝謝你們這樣做 - 以前應該想到這一點 – MeltingDog

0

你的CSS規則,被覆蓋的原因是樣式規則的優先級在很大程度上取決於在其」特殊性重新定義。

.myClass a不如#myID a特定,因爲類別選擇意味着要受到規則影響的元素的範圍比ID更廣泛。爲確保您的規則優先於舊規則,只需使用#wrapper .mydiv a作爲您的選擇器,從而提高您的規則超越舊規則的特異性。