1.0引入系列——style属性、style标签、link与@import导入样式的区别

831 阅读1分钟

本人已参与新人「创作礼活动」,一起开启掘金创作之路。

一、样式的四种导入或使用方式

分类特点缺点
style属性优先级高不可复用,维护成本高
style标签当前页面复用不能跨页面复用
link标签使用rel添加属性,可以添加RSS;复用性高;同步加载,页面加载时,同时被加载需考虑引入顺序的影响
@import只能引入样式且导入语句要写在样式表的开头;
使用@import语句引入样式时,结尾需要加分号;
link比较,引入顺序决定优先级,同等权重的样式后面的样式覆盖前面的;
异步加载,在页面加载完成后,被加载;
异步加载,页面产生闪烁;不支持使用js控制DOM元素样式(换肤);存在兼容性问题
@import "index.css";
或
@import url(“index.css”);

二、实验验证 (实战)

1、通常情况

image.png

2、在css文件中使用@imprt引入一个css文件

image.png

  • 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>
    1. style1.css 样式代码
@import url('./style2.css');
.box1 {
    height: 100px;
    border: 1px solid red;
    background-color: gold;
}
    1. style1.css 样式代码
.box1 {
    padding: 20px;
    background-color: pink;
}