CSS @layer 简介

197 阅读1分钟

①这是一个实验中的功能,由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变;
②对于组件或者模块的 CSS,可以全部写在 @layer 规则中,把自身的优先级降到底部;
③语法:
1、@layer layer-name {rules};
2、@layer layer-name;
3、@layer layer-name, layer-name, layer-name;
4、@layer {rules};
④在默认情况下,@layer 规则内 CSS 声明的优先级是按照前后顺序来的,如果希望改变优先级,使用多名称语法设置下前后位置就可以了;
⑤让整个 CSS 文件变成 @layer:
1、@import 语法后面再添加个 layer (some-name):@import './xxx.lib.css' layer (lib), 同时也支持匿名引入:@import './xxx.lib.css' layer;
2、<link>元素引入:<link rel="stylesheet" href="xxx-lib.css" layer="lib">,匿名引入:<link rel="stylesheet" href="zxx-lib.css" layer>;
⑥@layer 支持嵌套,外层优先级高于内层;
⑦非 @layer 包裹的样式,拥有比 @layer 包裹样式更高的优先级;
⑧匿名层和命名层的优先级取决于书写位置,后写的优先级高;
⑨!important 会提升 @layer 的优先级,不过包裹 @layer 的!important 的优先级要高于未包裹 @layer 的!important;
(参考:developer.mozilla.org/zh-CN/docs/…