CSS 框架 词条目录
前端Wiki/词条/@layer 分层

@layer 分层

定义把样式分成具名层级并显式声明层叠优先级的 CSS 特性,专治第三方库样式互相打架

@layer 让你显式声明层叠顺序:@layer base, lib, app; 业务代码写进具名层后,层叠规则从玄学变成声明式——后声明的层优先级更高,未分层的普通样式优先级最高、可以随时兜底压过分层样式。这直接解决了引入第三方 UI 库时它自带样式与业务自定义样式互相踩踏、只能靠选择器特异性或 !important 硬怼的老问题。

典型用法是把 reset 放 base 层、组件库放 lib 层、业务覆盖放 app 层,三行声明确定优先级顺序,无需研究选择器特异性。Layer 的顺序声明必须出现在所有具名规则之前,否则后面声明的层优先级会反直觉。浏览器支持已经普及到现代主流环境,旧项目改造时配合降级工具平滑过渡即可,是 CSS 工程化里难得的帕累托改进。

HTML
<style>
  @layer base, app;           /* app 层优先级高于 base */

  @layer base {
    .btn { border-radius: 4px; padding: 8px 16px; }
  }
  @layer app {
    .btn { border-radius: 999px; background: #4a9eff; color: #fff; }
  }
</style>
<button class="btn">app 层覆盖 base 层的圆角</button>
⚠ 常见误区
🔗 相关词条设计令牌Sass
← 返回来源章节设计令牌