前言
之前我们是如何避免引入多方的CSS文件时冲突?注意引入顺序、注意选择器优先级、使用important
进行强制覆盖,现在你有了更好的选择@layer
,@layer
中后声明的优先级高于先声明的;;
- 文档 w3 | css-cascade-5 | MDN | @layer
- 浏览器支持情况
目前来看主流的一些浏览器都是支持的
内容
语法
常规使用
代码语言:javascript复制@layer p {
font-size: 20px;
}
匿名使用
代码语言:javascript复制@layer {
p {
font-size: 16px;
}
}
import
代码语言:javascript复制@import(utilities.css) layer(utilities);
// 匿名引入
@import(utilities.css) layer;
link
代码语言:javascript复制<link rel="stylesheet" href="base.css" layer="base">
// 匿名引入
<link rel="stylesheet" href="base.css" layer>
先声明后使用
?> 这里优先级:theme < layout < utilities
代码语言:javascript复制@layer theme, layout, utilities
Demo
代码语言:javascript复制这里就写一个demo意思一下,其实可以分为很多种情况的;
<html>
<head>
<meta charset="utf-8" />
<meta
name="robots"
content="noindex, nofollow" />
<style>
p {
color: rebeccapurple;
}
@layer type {
.box p {
font-weight: bold;
font-size: 1.3em;
color: green;
}
}
</style>
<title>@layer - 基本示例 - code sample</title>
</head>
<body>
<div class="box">
<p>Hello, world!</p>
</div>
</body>
</html>