CSS選擇器的優(yōu)先級(jí)是用來(lái)決定當(dāng)多個(gè)選擇器都應(yīng)用于同一個(gè)元素時(shí),哪個(gè)選擇器的規(guī)則將被應(yīng)用的一種機(jī)制。它是一個(gè)權(quán)重值,通常用一個(gè)四位數(shù)的數(shù)字表示(例如,0,0,0,0),其中每一位數(shù)字代表特定的選擇器部分。優(yōu)先級(jí)從左到右逐位比較,數(shù)字越大,優(yōu)先級(jí)越高。
以下是CSS選擇器優(yōu)先級(jí)的說(shuō)明:
1、內(nèi)聯(lián)樣式(Inline Styles): 在HTML元素上使用style屬性設(shè)置的樣式具有最高的優(yōu)先級(jí)。這意味著內(nèi)聯(lián)樣式將覆蓋任何其他樣式。
2、ID選擇器(ID Selectors): 使用ID選擇器(例如#myId)的選擇器具有較高的優(yōu)先級(jí)。每個(gè)ID選擇器增加100的權(quán)重。
3、類選擇器、屬性選擇器和偽類選擇器(Class Selectors, Attribute Selectors, and Pseudo-class Selectors): 這些選擇器的權(quán)重較低于ID選擇器,但高于元素選擇器。每個(gè)類選擇器、屬性選擇器或偽類選擇器增加10的權(quán)重。
4、元素選擇器(Element Selectors): 元素選擇器(例如p、div)具有較低的優(yōu)先級(jí)。每個(gè)元素選擇器增加1的權(quán)重。
5、通用選擇器和偽元素選擇器(Universal Selectors and Pseudo-element Selectors): 通用選擇器(*)和偽元素選擇器(例如::before、::after)通常具有最低的優(yōu)先級(jí)。
如果有多個(gè)選擇器應(yīng)用于同一個(gè)元素,瀏覽器將按照上述規(guī)則計(jì)算它們的權(quán)重,并選擇具有最高權(quán)重的樣式規(guī)則應(yīng)用于元素。如果多個(gè)選擇器具有相同的權(quán)重,那么后面定義的規(guī)則將覆蓋前面定義的規(guī)則,這通常稱為“層疊”(Cascading)。
舉例來(lái)說(shuō),如果有以下樣式規(guī)則:
#myId { color: blue;}p { color: red;}
那么對(duì)于具有id=”myId”的元素,文字顏色將是藍(lán)色,因?yàn)镮D選擇器的優(yōu)先級(jí)高于元素選擇器。如果沒(méi)有ID選擇器應(yīng)用,那么默認(rèn)顏色將是紅色,因?yàn)樵剡x擇器適用于所有元素。