Z
ZHANK
编程在线教程CSS 教程优先级与 !important
选择器进阶

优先级与 !important

特指度计算(0,0,0,0)、!important 慎用、覆盖规则

优先级与 !important

当多条规则冲突时,浏览器按优先级(特指度) 决定哪条生效。

学完本章你将: 掌握特指度计算 (0,0,0,0)、!important、覆盖规则。


特指度计算

特指度 = (style, ID, class/伪类/属性, 元素/伪元素)

内联样式:     (1,0,0,0)
ID:           (0,1,0,0)  每个 id 加 1
class/伪类:  (0,0,1,0)  每个 class 加 1
元素/伪元素:  (0,0,0,1)  每个元素加 1
css
p { color: black; }                      /* (0,0,0,1) */
.intro { color: blue; }                  /* (0,0,1,0) 胜出 */
#main p.intro { color: red; }            /* (0,1,1,1) 胜出 */

比较规则

css
/* 从左到右逐级比较——(0,1,0,0) > (0,0,99,99) */
#header { }          /* (0,1,0,0) 更高 */
div.container p { }  /* (0,0,1,2) 更低 */

/* 同优先级——后写的覆盖先写的 */

!important(慎用)

css
p { color: red !important; }     /* 打破一切优先级 */
p { color: blue; }               /* 无效——上面有 !important */

/* ❌ 不要轻易用——会让 CSS 难以维护 */
/* ✅ 只有覆盖第三方样式或工具类时才考虑 */

💡 优先级问题的最佳解法:提高选择器特指度,而不是 !important