- CSS 教程
- CSS - 首页
- CSS - 路线图
- CSS - 简介
- CSS - 语法
- CSS - 选择器
- CSS - 包含
- CSS - 测量单位
- CSS - 颜色
- CSS - 背景
- CSS - 字体
- CSS - 文本
- CSS - 图片
- CSS - 链接
- CSS - 表格
- CSS - 边框
- CSS - 块级边框
- CSS - 内联边框
- CSS - 外边距
- CSS - 列表
- CSS - 内边距
- CSS - 光标
- CSS - 轮廓
- CSS - 尺寸
- CSS - 滚动条
- CSS - 行内块
- CSS - 下拉菜单
- CSS - 可见性
- CSS - 溢出
- CSS - 清除浮动
- CSS - 浮动
- CSS - 箭头
- CSS - 调整大小
- CSS - 引号
- CSS - 排序
- CSS - 定位
- CSS - 连字符
- CSS - 悬停
- CSS - 显示
- CSS - 获取焦点
- CSS - 缩放
- CSS - 位移
- CSS - 高度
- CSS - 连字符字符
- CSS - 宽度
- CSS - 不透明度
- CSS - Z-index
- CSS - 底部
- CSS - 导航栏
- CSS - 叠加层
- CSS - 表单
- CSS - 对齐
- CSS - 图标
- CSS - 图片库
- CSS - 注释
- CSS - 加载器
- CSS - 属性选择器
- CSS - 组合器
- CSS - 根元素
- CSS - 盒模型
- CSS - 计数器
- CSS - 剪裁
- CSS - 书写模式
- CSS - Unicode-bidi
- CSS - min-content
- CSS - all
- CSS - inset
- CSS - isolation
- CSS - overscroll
- CSS - justify-items
- CSS - justify-self
- CSS - tab-size
- CSS - pointer-events
- CSS - place-content
- CSS - place-items
- CSS - place-self
- CSS - max-block-size
- CSS - min-block-size
- CSS - mix-blend-mode
- CSS - max-inline-size
- CSS - min-inline-size
- CSS - offset
- CSS - accent-color
- CSS - user-select
- CSS 高级
- CSS - 网格
- CSS - 网格布局
- CSS - Flexbox
- CSS - 可见性
- CSS - 定位
- CSS - 层
- CSS - 伪类
- CSS - 伪元素
- CSS - @规则
- CSS - 文字效果
- CSS - 分页媒体
- CSS - 打印
- CSS - 布局
- CSS - 验证
- CSS - 图片精灵
- CSS - !important
- CSS - 数据类型
- CSS3 教程
- CSS3 - 教程
- CSS - 圆角
- CSS - 边框图片
- CSS - 多重背景
- CSS - 颜色
- CSS - 渐变
- CSS - 盒阴影
- CSS - 盒装饰中断
- CSS - 光标颜色
- CSS - 文本阴影
- CSS - 文本
- CSS - 2D 变换
- CSS - 3D 变换
- CSS - 过渡
- CSS - 动画
- CSS - 多列
- CSS - 盒大小
- CSS - 工具提示
- CSS - 按钮
- CSS - 分页
- CSS - 变量
- CSS - 媒体查询
- CSS - 函数
- CSS - 数学函数
- CSS - 遮罩
- CSS - 形状
- CSS - 样式图片
- CSS - 特效性
- CSS - 自定义属性
- CSS 响应式
- CSS RWD - 简介
- CSS RWD - 视口
- CSS RWD - 网格视图
- CSS RWD - 媒体查询
- CSS RWD - 图片
- CSS RWD - 视频
- CSS RWD - 框架
- CSS 工具
- CSS - PX 到 EM 转换器
- CSS - 颜色选择器和动画
- CSS 资源
- CSS - 有用资源
- CSS - 讨论
CSS - @layer
CSS 的 at 规则`@layer`用于声明一个级联层,并且可以额外指定多个级联层参与时它们的优先级顺序。
layer-name - 级联层的名称。
rules - 级联层中的 CSS 规则集。
描述
级联层中的样式会被合并,这为 Web 开发人员提供了对级联的更多控制。
未分配到层的样式会分组到一个单一的匿名层中,该层排在所有命名层和未命名层之后。
因此,无论特异性如何,在层外部定义的样式都优先于层内部的样式。
可以使用三种不同的方式利用`@layer`at 规则创建级联层。
-
第一种方法是创建一个具有特定名称的级联层,其中包含相应的 CSS 规则。
@layer layer-name {rules}
-
另一种方法是创建命名级联层而无需指定任何样式。可以同时定义多个层。层声明的顺序决定优先级;如果多个层中的规则冲突,则最后声明的层优先。
@layer layer-name; @layer layer-name, layer-name, layer-name;
-
第三种方法是创建级联层而无需指定名称。这会创建一个匿名级联层,其功能与命名层类似。匿名层的优先级基于其声明顺序。
@layer {rules}
-
也可以使用`@import` at 规则创建级联层,并将规则放在导入的样式表中。下面是一个例子。
@import "demo-layer.css" layer(layout);
嵌套层
层可以嵌套,这意味着可以在其他层中创建层。这对于组织 CSS 和赋予某些层优先级非常有用。
@layer layer-name1 { @layer layer-name2 { } }
语法
正式的 @layer 语法如下所示
@layer <layer-name>? { <stylesheet> } | @layer <layer-name># ;
示例
下面的例子演示了在层外部声明的样式优先于在层内声明的样式。
<html> <head> <style> h1 { color: white; background-color:gray; } p { color: black; } @layer components { .container h1 { background-color: blue; color: red; padding: 10px; border-radius: 20px; } .container p { color: white; background-color: lightblue; font-size: 25px; } } </style> </head> <body> <div class="container"> <h1>HTML example to show CSS at-rules @layer</h1> <p>This is a sample text.</p> <button>Click Me</button> </div> </body> </html>
将规则分配给现有层
以下示例演示了将规则分配给现有层。最初创建两个没有任何规则的层,之后将 CSS 规则应用于这两个层。
在给出的示例中,`@layer primary-demo, custom-demo;`声明了两个名为`primary-demo`和`custom-demo`的 CSS 层。
在`@layer primary-demo`中定义的样式将默认格式应用于具有`container`类的元素。
随后的部分`@layer custom-demo`覆盖了同一类的某些属性,允许自定义样式而不影响基础层,这演示了使用 CSS 层来组织和管理样式。
<html> <head> <style> @layer primary-demo, custom-demo; @layer primary-demo { .container { background-color: blue; color: black; font-family: Arial, sans-serif; font-size: 20px; line-height: 1.5; } } @layer custom-demo { .container { background-color: orange; color: white; padding: 10px; text-align: center; } } </style> </head> <body> <div class="container"> <h1>Welcome to My Website</h1> <p>This is a welcome quote with a blue background and white text.</p> <p><a href="#">Learn More</a></p> <h2>About Me</h2> <p>I am a web developer with experience in HTML, CSS, and JavaScript.</p> <p><a href="#">View My Portfolio</a></p> </div> </body> </html>