按列而不是按总分比较
先看 ID,再看类与属性,最后看元素;一个 ID 不会被许多类“加分”反超。同分排序会保留原输入顺序。
CSS 选择器工具
每行输入一个选择器;顶层逗号列表会拆成独立结果。需要时再打开本地 HTML 匹配。
每行一个选择器;顶层逗号会拆开。
输入选择器开始。
选择器和可选 HTML 仅在本地处理,解析过程不会获取外部资源。
输入已变,旧结果已过期。
样式没有按预期覆盖时,先用 CSS 优先级计算器拆开 ID、类、元素三列,比背诵“百位、十位、个位”更可靠。这里的 CSS 选择器权重是三元组,不是可以进位的整数。
把两个选择器放在一起做 CSS 优先级比较,再按需粘贴 HTML 片段检查是否匹配。CSS 选择器优先级与实际层叠生效分开显示,避免误把最高分当最终答案。
:is(#dialog, .panel) 会取参数中最高的权重,:where(#dialog, .panel) 却始终贡献零。CSS 优先级计算器逐项列出贡献,便于找出那个意外抬高权重的 ID。
#missing 的分值可能很高,但在当前 HTML 片段里没有匹配;.card 分值较低,却匹配到元素。两个结果并列,避免把“匹配零个”误读成“优先级为零”。
先看 ID,再看类与属性,最后看元素;一个 ID 不会被许多类“加分”反超。同分排序会保留原输入顺序。
把相同列表分别放进 :is() 与 :where()。前者取最高参数分值,后者为零;:nth-child(... of S) 还会额外计入自身伪类。
粘贴静态 HTML 片段后查看匹配数量。这个结果不模拟 hover、focus 或伪元素,也不推断最终哪个声明生效。
每个选择器分别显示 ID、类/属性/伪类、元素/伪元素的数量,并列出贡献片段。
顶层逗号分隔的分支逐条显示;可保留输入顺序,也可按权重降序,等分保持原顺序。
可选 HTML 在无脚本的解析树中查找匹配节点,不打开图片、样式表或外部网址。
ID 计入第一列,类、属性与伪类计入第二列,元素与伪元素计入第三列;从左到右比较,不按十进制求和。
:where() 及其参数恒为零,它适合写易于覆盖的基础规则;同样参数放进 :is() 则会取最高分。
:is() 自身不额外加分,但其参数列表中若有 ID,最高参数就可能把整项提升到 ID 列。
分值相同只说明优先级这一关平局;真实层叠还要看来源、层、重要性、作用域和源码顺序。
不会。!important 与行内 style 不属于选择器权重三元组,本页只计算选择器文本。
发现选择器计分有误?