一鸳惯、優(yōu)先級分類
通常可以將css 的優(yōu)先級由高到低分為6組:
- 第一優(yōu)先級:無條件有限的屬性只需要在屬性后面使用立叛! important固阁。它會覆蓋頁面內任何位置定義的元素樣式壤躲。IE6不支持該屬性。
- 第二優(yōu)先級:在HTML中給元素標簽加style备燃,即內聯(lián)樣式碉克。該方法會造成CSS難以管理,所以不推薦使用并齐。
- 第三優(yōu)先級:有一個或多個id選擇器來定義漏麦。例如,
#id{margin: 0}
會覆蓋.classname{margin: 3px}
- 第四優(yōu)先級:有一個或多個類選擇器况褪、屬性選擇器撕贞、偽類選擇器定義。如
.classname{margin: 3px}
會覆蓋div{margin: 6px}
- 第五優(yōu)先級:有一個或多個類型選擇器定義测垛。如
div{margin: 6px}
覆蓋*{margin: 10px;}
- 第六優(yōu)先級:通配選擇器麻掸,如
*{margin: 6px;}
二、選擇器的權重及優(yōu)先規(guī)則
在css中赐纱,會根據選擇器的特殊性來決定所定義的樣式規(guī)則的次序脊奋,具有更特殊選擇器的規(guī)則優(yōu)先于一般選擇器的規(guī)則。入股兩個規(guī)則的特殊性相同疙描,那么后定義的規(guī)則優(yōu)先诚隙。
那么如何計算選擇器的特殊性呢?那就要用到選擇器的權重計算了起胰。計算規(guī)則如下圖:
權重計算
我們把也屬性分為4個等級久又,每一個等級代表一類選擇器,每個等級的值相加得出選擇器的權重效五。
4個等級的定義如下:
- 第一等級:代表內聯(lián)樣式地消,如style=“”,權值為1000
- 第二等級:代表ID選擇器畏妖,如#content脉执,權值為100
- 第三等級:代表類,偽類和屬性選擇器戒劫,如.content半夷,權值為10
- 第四等級:代表標簽選擇器和偽元素選擇器,如div p迅细,權值為1
注意:通用選擇器(*)巫橄,子選擇器(>),和相鄰同胞選擇器(+)并不在這個等級中茵典, 所以他們的權值為0
如上圖湘换,真?zhèn)€選擇器表達式的特殊值為113
三、優(yōu)先級不起作用
如果遇到了似乎沒有起作用的css規(guī)則,很可能是出現了特殊性沖突彩倚。這時可以在選擇其中添加他的一個父元素的ID筹我,從而提高它的特殊性,如果這能解決問題署恍,就說明樣式表中其他地方很可能有更特殊的規(guī)則,他覆蓋了你的規(guī)則蜻直,此時需要檢查代碼盯质,解決特殊性沖突,讓代碼盡可能的簡潔概而。