本人已参与新人「创作礼活动」,一起开启掘金创作之路。
一、样式的四种导入或使用方式
| 分类 | 特点 | 缺点 |
|---|---|---|
| style属性 | 优先级高 | 不可复用,维护成本高 |
| style标签 | 当前页面复用 | 不能跨页面复用 |
| link标签 | 使用rel添加属性,可以添加RSS;复用性高;同步加载,页面加载时,同时被加载 | 需考虑引入顺序的影响 |
| @import | 只能引入样式且导入语句要写在样式表的开头; 使用 @import语句引入样式时,结尾需要加分号; 与 link比较,引入顺序决定优先级,同等权重的样式后面的样式覆盖前面的; 异步加载,在页面加载完成后,被加载; | 异步加载,页面产生闪烁;不支持使用js控制DOM元素样式(换肤);存在兼容性问题 |
@import "index.css";
或
@import url(“index.css”);
二、实验验证 (实战)
1、通常情况
2、在css文件中使用@imprt引入一个css文件
- 1、html代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="style1.css">
<style>
/* @import url('./style2.css');*/
/* 验证方式:打开上一行,同时注释style1.css中的@import,查看控制台文件的加载顺序 */
</style>
</head>
<body>
<div class="box">
使用@import引用的CSS文件只有在引用它的那个css文件被下载、解析之后,
浏览器才会知道还有另外一个css需要下载,这时才去下载,
然后下载后开始解析、构建render tree等一系列操作。
这就导致了浏览器无法并行下载所需的样式文件。
</div>
</body>
</html>
-
- style1.css 样式代码
@import url('./style2.css');
.box1 {
height: 100px;
border: 1px solid red;
background-color: gold;
}
-
- style1.css 样式代码
.box1 {
padding: 20px;
background-color: pink;
}