← 返回首页
技术 2026年2月2日 · 1 分钟阅读 · 大可

CSS 优先级与特异性避坑

理解选择器权重计算,避免 !important 满天飞,让覆盖 B2 样式更可控。


给 B2 元素加样式却「不生效」,多半是特异性(specificity)被父主题更高权重的规则压住了。

权重怎么算

浏览器按 (内联, ID, 类/属性/伪类, 元素) 四级比较,从左到右谁大谁赢:

#header .nav a    → (0,1,2,1)  权重高于
.nav a            → (0,0,1,1)

ID 的权重极高,能不用就别用。

实用策略

  1. 提高特异性:父主题用 .card,你用 .card.card--custom 多挂一个类即可胜出,不必加 ID。
  2. 顺序原则:同权重下,后定义的胜出。子主题样式本就后加载,正常情况能覆盖。
  3. 万不得已才用 !important,并尽量只在精确选择器上用,避免污染全局。

调试时在 DevTools 的「Computed」面板看哪条规则被划掉,就能定位是谁压住了你的样式。

#CSS#特异性#调试