用途:诊断并修复 CSS 层叠冲突,即“为什么我的规则没有胜出”。前提是熟悉 @layer 与 @scope 语法,重点在决策树、容易让作者意外的反转规则和 DevTools 工作流。
主要能力:给出完整层叠排序链(相关性、来源+重要性、层、特异性、@scope 邻近度、出现顺序),首个差异决定胜者;提供来源+重要性 8 级阶梯,并指出 !important 会反转来源顺序,因此用户 !important 胜过作者 !important;说明普通作者声明中未分层样式总是胜过已分层样式,而 !important 作者声明中层顺序反转,最先声明的层反而胜出;给出特异性三列阶梯(ID、类/属性/伪类、类型/伪元素),以及 :where() 恒为 0-0-0、:is()/:not()/:has() 取参数中最高特异性的规则;列出 inherit、initial、unset、revert、revert-layer 等层叠控制关键字。
使用方式:按顺序排查——选择器是否匹配、是否有更高来源或重要性规则、是否分层不一致、层顺序、特异性、@scope 邻近度、源码顺序,遇到首个差异即停止。DevTools 中在 Styles 面板自上而下阅读,被划掉的声明即落败,悬停查看文件行号,点击 Layer 徽章查看层归属,Computed 面板查看最终值与声明链。降低特异性可用 :where() 包裹选择器,例如把 #app .panel .header h2 改为 :where(#app) .panel .header h2;也可用 @layer reset, vendor, base, theme, components, utilities; 预先声明全部层,并用 @import url("third-party.css") layer(vendor); 把第三方 CSS 导入指定层。
适用场景:规则明明特异性更高却不生效、!important 被当作万能修复不断升级、ID 选择器与嵌套类链导致特异性战争、第三方 CSS 难以覆盖、@scope 规则与更深 DOM 普通规则的胜负判断。
限制:资料未提供该技能的安装命令、运行环境、收费与平台信息;内容基于 MDN 的特异性、层叠、!important、@layer 文档(核验日期 2026-05-19)。!important 仅在少数场景可接受,如设计系统中故意覆盖组件的工具类层、必须压过屏幕样式的打印样式表、无法重构的第三方 CSS;其余情况应通过分层与降低特异性解决。