技术 2026年2月2日 · 1 分钟阅读 · 大可
CSS 优先级与特异性避坑
理解选择器权重计算,避免 !important 满天飞,让覆盖 B2 样式更可控。
给 B2 元素加样式却「不生效」,多半是特异性(specificity)被父主题更高权重的规则压住了。
权重怎么算
浏览器按 (内联, ID, 类/属性/伪类, 元素) 四级比较,从左到右谁大谁赢:
#header .nav a → (0,1,2,1) 权重高于
.nav a → (0,0,1,1)
ID 的权重极高,能不用就别用。
实用策略
- 提高特异性:父主题用
.card,你用.card.card--custom多挂一个类即可胜出,不必加 ID。 - 顺序原则:同权重下,后定义的胜出。子主题样式本就后加载,正常情况能覆盖。
- 万不得已才用
!important,并尽量只在精确选择器上用,避免污染全局。
调试时在 DevTools 的「Computed」面板看哪条规则被划掉,就能定位是谁压住了你的样式。
#CSS#特异性#调试