CSS中的優(yōu)先級(Specificity)是指當(dāng)多個相同的CSS規(guī)則應(yīng)用到同一個元素的時候,哪條規(guī)則會被瀏覽器優(yōu)先采用。優(yōu)先級是根據(jù)不同類型的選擇器和屬性進行計算的。
優(yōu)先級的計算規(guī)則如下: ? 每個聲明的權(quán)值從左到右增加:ID選擇器(100),類選擇器、屬性選擇器和偽類(10),元素選擇器和偽元素(1),通配符、子選擇器、相鄰選擇器和同類選擇器無權(quán)值(0)。 ? 所有選擇器的權(quán)值組合在一起,并按權(quán)值降序排列。如果兩個選擇器的權(quán)值相等,則后出現(xiàn)的選擇器優(yōu)先級更高。 ? 對于在元素上應(yīng)用的所有聲明,優(yōu)先級相同的情況下,后定義的優(yōu)先級更高。嵌套的規(guī)則無法打破平局,其優(yōu)先級仍然是相等的。
舉個例子,假設(shè)有以下兩個CSS規(guī)則:
/* 第一個規(guī)則 */ span { color: red; } /* 第二個規(guī)則 */ #main span { color: blue; }
這兩個規(guī)則都在span元素上定義了顏色樣式,但是ID選擇器 #main 的權(quán)值是100,而元素選擇器 span 的權(quán)值是1,所以第二個規(guī)則的權(quán)值更高,因此文本將使用藍(lán)色。
了解CSS優(yōu)先級的計算規(guī)則很重要,因為當(dāng)您嘗試更改網(wǎng)站布局或添加新樣式時,可能會發(fā)現(xiàn)舊樣式優(yōu)先級較高,因而不生效。此時,您需要檢查規(guī)則優(yōu)先級,以確定要更改的規(guī)則是否具有更高的優(yōu)先級。