css 選擇器優先級按如下順序決定:特殊性(id > 類 > 類型 > 通配符)來源順序(行內 > 內部樣式表 > 外部樣式表 > 用戶代理樣式表)聲明順序(靠后的聲明優先)重要性(!important 強制提高優先級)
CSS選擇器優先級
CSS選擇器優先級決定了當多個選擇器應用于元素時,哪個選擇器將被使用。優先級高的選擇器將覆蓋優先級低的同類型選擇器。
CSS選擇器優先級由以下四個方面決定,從高到低排列:
1. 特殊性
特殊性由選擇器中使用的選擇器類型的數量和位置決定。下列類型的選擇器特殊性依次增加:
ID選擇器(#)
類選擇器(.)
類型選擇器(html、body 等)
通配符(*)
2. 來源順序
如果兩個選擇器的特殊性相同,則來源于更具體來源的選擇器優先級更高。來源順序依次為:
行內樣式
內部樣式表
外部樣式表
用戶代理樣式表
3. 聲明順序
如果兩個選擇器的特殊性和來源順序都相同,則寫在 CSS 文檔中靠后的聲明優先級更高。
4. 重要性
!important
關鍵字可以強制提高選擇器的優先級。然而,它的使用應避免,因為它會破壞 CSS 的可維護性。
示例:
以下示例說明了優先級的應用:
<code class="<a style='color:#f60; text-decoration:underline;' href=" https: target="_blank">css">#primary { color: red; } .bold { color: blue; } p { color: green; } body { color: black; } p.bold { color: purple !important; }</code>
登錄后復制
在上面的示例中,p.bold
的特殊性為 2(類型選擇器 + 類選擇器),并且聲明中包含 !important
,因此具有最高的優先級。因此,對于具有 p.bold
類的段落,p.bold
的樣式(紫色)將被應用,而不是 #primary
(特殊性為 1)、.bold
(特殊性為 1)或 p
(特殊性為 0)的樣式。