css architecture layers nesting design

现代 CSS 架构:精通图层、嵌套和 @property

利用 @layer、原生嵌套和使用 @property 的类型安全变量构建可扩展的 CSS 系统。探索 CSS 架构的未来。

2026-04-12

现代 CSS 架构:精通图层、嵌套和 @property

我们组织和构建 CSS 的方式正在发生根本性的变化。我们正在从庞大的文件和复杂的优先级黑客手段转向更具架构性、属性驱动的方法。现代特性(如 @layer@property)允许我们构建像任何编程语言一样强大且可扩展的系统。

在本指南中,我们将探索让 CSS 架构更具可预测性和专业性的技术。

2. 使用原生 CSS 嵌套编写更简洁的代码

您不再需要像 Sass 或 Less 这样的预处理器来嵌套 CSS。浏览器现在原生支持嵌套,使您的代码明显更易于阅读和维护。

语法示例:

.card {
  padding: 20px;
  background: white;

  & .header {
    border-bottom: 1px solid #eee;
  }

  &:hover {
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
  }
}

这使您的样式保持逻辑分组,并减少了长类名的重复。


3. 使用 @property 定义变量

CSS 自定义属性(--variable)很棒,但它们缺乏“类型”。您无法为渐变或自定义属性制作动画,因为浏览器不知道它是什么种类的数据。

@property (Houdini) 允许您定义具有类型、初始值和继承标志的变量。

@property --my-color {
  syntax: '<color>';
  inherits: false;
  initial-value: red;
}

/* 现在您可以为它制作动画了! */
.box {
  transition: --my-color 1s;
}

4. 新兴特性:锚点定位 (Anchor Positioning) 和弹窗 (Popover)

现代 CSS 还为常见的 UI 模式引入了高级 API。

锚点定位 (Anchor Positioning)

允许您将一个元素相对于另一个元素进行定位,将其“锚定”在适当的位置。这是工具提示、菜单和需要“跟随”按钮或目标的浮动 UI 的新标准。

Popover API

一种创建“顶层”内容(如模态框、工具提示或菜单)的原生方式。它自动处理 z-index、无障碍性以及“轻触关闭”(点击外部时关闭)。

<button popovertarget="my-menu">打开菜单</button>
<div id="my-menu" popover>...</div>

5. 使用 @counter-style 自定义列表

需要创建自定义编号系统吗?@counter-style 允许您为有序列表定义自己的符号、编号系统和后缀。


架构工具总结

特性 最适用于 状态
@layer 全局优先级管理 广泛支持
嵌套 简洁、有组织的代码 广泛支持
@property 类型安全变量、动画 Chrome, Safari
锚点定位 工具提示、菜单和 UI 新兴
Popover API 原生、无障碍的顶层内容 广泛支持

结论

现代 CSS 架构关乎控制可预测性。通过利用 @layer嵌套,您可以编写更易于扩展的 CSS。通过使用 @property,您可以创建真正的动态、类型安全组件。

想要使您的 CSS 现代化吗?查看我们的 CSS 嵌套转换器,并关注我们即将推出的 @layer 生成器CSS 变量游乐场