CSS @layer 规则
定义和用法
CSS @layer 规则可用于控制 CSS 层叠层(cascade layers)评估样式的顺序。
这是通过首先定义一个层,然后将需要按特定顺序评估的规则集包裹在该层中来实现的。
@layer 可以带名称或不带名称定义。
不带名称的 @layer 称为匿名层。匿名层按照声明的顺序进行评估(请参阅下面的例子)。它们遵循默认的层叠顺序(从上到下)。
带有唯一名称的 @layer 称为命名层。通过命名层,我们可以指定所需的精确层叠顺序(见下方示例)。顺序从最不具体到最具体,从左到右排列。
实例
例子 1
使用匿名层(将遵循默认的层叠顺序——从上到下):
/* 层 1 */
@layer {
body {
background: pink;
}
}
/* 层 2 */
@layer {
body {
background: lightblue; /* 最后一个层生效 */
}
}
例子 2
使用命名层(并指定所需的精确层叠顺序):
/* 指定精确的层叠顺序 */
@layer bgblue, bgpink;
/* 层 1 */
@layer bgpink {
body {
background: pink; /* 生效 */
}
}
/* 层 2 */
@layer bgblue {
body {
background: lightblue;
}
}
CSS 语法
@layer name {
css declarations;
}
属性值
| 值 | 描述 |
|---|---|
| name | 可选。定义层叠层的名称。 |
浏览器支持
表格中的数字表示首个完全支持该 @ 规则的浏览器版本。
| Chrome | Edge | Firefox | Safari | Opera |
|---|---|---|---|---|
| 99 | 99 | 97 | 15.4 | 86 |