# 优先级

对于某一元素的某一 CSS 属性,最终会有确定的渲染结果。如果在多个地方针对同一元素的具体 CSS 属性多次声明,只有最终“胜出”的声明才能渲染。胜出的声明被称为层叠值 (opens new window)。元素的每个属性最多只有一个层叠值。

# 来源

来源分为行内声明(style="color:blue") 和样式表声明。行内声明的优先级更高,如果需要在样式表中覆盖需用使用 !important.

# 选择器

优先级从高到低依次为:

  • id 选择器 (#xx)
  • 类选择器 (.xx) / 伪类选择器 (:after) / 属性选择器 ([type='input'])
  • 标签选择器 (p)

通用选择器(*)、组合器(>+~)、空格 对优先级没有影响,不参与优先级的计算。

会根据这三类选择器产生产生一个特制度数值(Specificity),如 #body 100, .body#body 110, body.body 011.

Specificity 小工具:

# 顺序

每个元素的每个属性,在选择器优先级相同 或 同为行内元素 时,以后声明的为准。

# 参考