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