首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

HTML 標簽雙 Class 衝突?CSS 級聯規則決定勝負

     編輯:程式設計綜合問答

<div class="tb tab"> 同時套用 .tb 和 .tab,當兩個類定義同一屬性(如 color)時,誰生效?

核心規則:樣式表中後聲明者勝

.tb { color: red; }
.tab { color: green; }  /* 寫在後面,生效 */

結果:文字顯示綠色。若調換順序,則顯示紅色。

為什麼不是「類名順序」?

HTML 中 class="tb tab" 與 class="tab tb" 完全等價,瀏覽器解析時不保留類名順序。優先級完全取決於 CSS 文件中規則的書寫順序(同層級、同權重下)。

優先級完整判斷鏈

  1. 重要性:!important > 內聯樣式 > ID 選擇器 > 類/屬性/偽類 > 標簽/偽元素 > 通配符 > 繼承 > 瀏覽器默認。
  2. 同權重下:後寫的覆蓋先寫的。
  3. 同樣選擇器多次出現:最後一次生效。

最佳實踐

  • 避免依賴順序覆蓋,改用更具體選擇器(如 .container .tab)提升優先級。
  • 採用 BEM 命名規範,減少衝突概率。
  • 用開發者工具(F12)查看「Computed」面板,直觀看到最終生效規則及被劃掉的規則。

掌握級聯規則,CSS 不再「莫名其妙失效」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved