前端与浏览器 / 进阶
CSS 层叠层:用 @layer 管理覆盖关系
解释层叠来源、层顺序和选择器权重的关系,为重置、第三方样式、组件和工具类规划稳定覆盖规则。 把优先级写进架构,少靠更长选择器和 !important。
层顺序先于层内权重
后声明优先层中的低权重选择器,可以覆盖早期层中的高权重选择器。因此把难覆盖的第三方 CSS 放进较低层,往往无需与它比拼选择器长度。 !important 的层顺序会反转:较早层的重要声明更强。这是为了保护底层约束,不应把 important 当作常规跨层覆盖手段。
EXAMPLE / 01Cascade Layers
@layer reset, vendor, tokens, base, components, utilities, overrides;
@import url('./vendor.css') layer(vendor);
@layer components {
.button { background: var(--color-action); }
}
@layer utilities {
.bg-transparent { background: transparent; }
}把实现拆成可验证的小块
第三方样式适合放入低优先级层
最后回到真实页面检查
层级应少而稳定,成为样式架构契约