CSS 优先级计算器

即时计算 CSS 选择器优先级,输出 (a, b, c) 元组。支持多选择器对比,可视化展示 ID、类、元素权重。免费浏览器端工具。

100% 浏览器端运行 数据不离开你的设备 免费 · 无需注册
Comma-separate multiple selectors to compare

使用方法

  1. 在输入框中输入 CSS 选择器,例如 #nav .item:hover
  2. 优先级元组 (a, b, c) 和彩色分项说明会立即显示。
  3. 如需对比多个选择器,用逗号分隔:#nav .item, .item:hover
  4. 点击任意结果旁的复制按钮,即可将元组复制到剪贴板。

理解 (a, b, c) 元组

  • a — ID:每个 #id 选择器加 1。
  • b — 类 / 属性 / 伪类:每个 .class[attr]:伪类 加 1。
  • c — 元素 / 伪元素:每个标签名或 ::伪元素 加 1。

从左到右对比。第一个不同的列决定胜负。(1,0,0) 始终胜过 (0,99,99)

常见示例

  • *(0, 0, 0)
  • p(0, 0, 1)
  • .class(0, 1, 0)
  • #id(1, 0, 0)
  • #id .class:hover(1, 2, 0)
  • div > p + span::before(0, 0, 4)

FAQ

什么是 CSS 优先级?

CSS 优先级决定当多条规则作用于同一元素时哪条规则生效。用三元组 (a, b, c) 表示:a 计算 ID 选择器数量,b 计算类/属性/伪类选择器数量,c 计算元素类型和伪元素选择器数量。

优先级如何计算?

a = ID 选择器数量(#id)。b = 类(.class)、属性([attr])、伪类(:hover)选择器数量。c = 元素类型(div、span)和伪元素(::before)选择器数量。通配符(*)和连接符(+、>、~)不计入优先级。

如何对比两个选择器的优先级?

用逗号分隔两个选择器输入。工具会并排显示各选择器的优先级元组。从左到右逐列对比,第一个不同列的值大者获胜。

:not()、:is()、:has() 如何计算?

:not() 和 :is() 取其参数中优先级最高的选择器计算。:where() 始终为零优先级。:has() 使用其参数的优先级。本工具对这些伪类采用简化的单参数解析。

行内样式和 !important 算入其中吗?

行内样式(style 属性)高于 (a, b, c),!important 可覆盖一切。本工具只计算选择器优先级,行内样式和 !important 不在计算范围内。