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