0Pricing
CSS Academy · 课时

@layer 声明与排序

声明命名的层叠层,并使用 @layer 语句控制它们的优先级顺序。

@layer 声明与排序 是 CoddyKit 上的免费 CSS Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 CSS Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 CSS Academy 课程共包含 4 节课。

什么是 @layer

CSS 层叠层(@layer)提供了一种机制,可以在不依赖特异性的情况下,显式控制 CSS 规则在层叠中的优先级。即使选择器具有更高的特异性,优先级较低的层仍会失效。

@layer 为什么重要

没有层时,每条 CSS 规则都会通过特异性和源代码顺序进行竞争。当重置样式、组件样式和工具样式都争夺优先级时,就会导致特异性之争。层为每个组提供了固定且可预测的优先级。

声明层

请在开头通过一条语句声明各个层。声明顺序决定优先级,后声明的层会覆盖先声明的层。

<p>This scene only declares layer order — see the CSS panel:</p>
<p style="color:#888;font-size:0.9em;">@layer reset, base, components, utilities;</p>

层声明的位置

@layer 声明应位于样式表的顶部(或主导入文件的顶部)。声明之后,可以按任意顺序向层添加样式;优先级由声明顺序决定,而不是由添加样式的位置决定。

为什么源代码顺序对层不起作用

由于层的优先级在声明时确定,因此可以在任意位置向层添加样式,甚至可以通过前向引用,在层声明之前添加样式。真正重要的是已声明的顺序。

层优先级规则

无论特异性如何,后声明层中的声明始终会覆盖先声明层中的声明:

<p>Reset layer !important paragraph (red)</p>
<div id="header">Components layer header (blue)</div>

未分层样式

放置在任何层之外的样式称为未分层样式。它们具有最高优先级,甚至高于最后声明的层。请将其用于必须始终生效的紧急覆盖。

优先级栈

完整的优先级顺序(作者样式从高到低):

  1. 未分层样式(位于任何 @layer 之外)
  2. 最后声明的层(例如工具层)
  3. 倒数第二个层(例如组件层)
  4. 更早声明的层(基础层、重置层)

层中的 !important 反转

层中的 !important 比较棘手:它会反转该声明的层顺序。最早层中的 !important 会覆盖后续层中的 !important。这与用户样式和作者样式的原始层叠行为一致。

嵌套层

可以使用点号表示法嵌套层:

<p>This scene declares nested layers with dot notation — see the CSS panel.</p>

实用设置示例

一个符合实际项目的层设置:

<p>A realistic project layer order — see the CSS panel.</p>

快速检查

层声明为:@layer base, components, utilities。发生冲突时,哪个层的样式会获胜?

回顾

@layer 会建立具有明确顺序的层叠层。请按优先级顺序声明层名称(优先级最低的在前)。后声明的层始终会覆盖先声明的层,与特异性无关。未分层样式具有最高优先级。!important 会反转该声明的层优先级顺序。

常见问题解答

「@layer 声明与排序」课时是免费的吗?

是的 — 「@layer 声明与排序」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 CSS Academy 课程的其余内容,请升级到 CoddyKit PRO。 CSS Academy 课程共包含 4 节课。

「@layer 声明与排序」这节课中我会学到什么?

声明命名的层叠层,并使用 @layer 语句控制它们的优先级顺序。 你通过在浏览器中直接运行的动手代码来练习 CSS Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 CSS Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 CSS Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「@layer 声明与排序」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 CSS Academy 课中编写并运行代码吗?

能。每节 CSS Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. @layer 声明与排序
  2. 向层叠层添加样式
  3. 层叠层优先级与 !important 的交互
  4. 第三方代码中的层叠层
← 返回 CSS Academy