玩转CSS基础——import 指令

简介: 来看看import指令是啥?import指令是用来导入CSS样式的,这时,有的小伙伴就会问:导入样式不是有link标签了嘛,没错,link标签可以导入外部CSS样式,import仍然可以导入外部CSS样式。
📢 大家好,我是法医,不是验尸的法医,而是写代码的法医,哈哈😅,今天给大家带来玩转CSS基础之 import 指令

来看看import指令是啥?import指令是用来导入CSS样式的,这时,有的小伙伴就会问:导入样式不是有link标签了嘛,没错,link标签可以导入外部CSS样式,import仍然可以导入外部CSS样式。

import的基本用法

  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>
    <style>
        @import url("./index.css");
    </style>
</head>
<body>
    
</body>
</html>

要在HTML文件汇总直接应用@import引入外部CSS文件,需要将@import放在style标签内

  1. 在CSS文件中引入另一个CSS文件
@import url('./index.css')
/*后面书写气他样式*/

除了 HTML 文件中使用 style 标签来使用 @import,在 CSS 文件中依旧可以使用  @import,这个时候就不需要 style 标签,而是直接使用@import即可,这样便可实现一个或者多个CSS 文件中引入别的CSS 文件。

  1. @import规则还支持媒体查询,因此可以允许依赖媒体的导入

🌰举个栗子:

/*只有媒体是 print 的时候导入 printstyle.css样式表*/
@import "printstyle.css" print;
/*只有媒体是 screen并且视口宽度是768px的时候导入 bg.css样式表*/
@import "bg.css" screen and (max-width:768px);

了解了@import基本使用后,接下里看看它与link的区别

@importlink有何不同

  1. link属于HTML标签,而 @import 完全是CSS提供的一种方式

    link标签除了可以加载CSS外,还可以做很多其它事情,比如定义RSS,定义rel连接属性等,@import 只能加载CSS

  2. 兼容性的差别

    由于@import是CSS2.1提出的,所以老的浏览器不支持,@import只有在IE5以上才能识别,而link标签不存此问题

  3. 加载顺序的区别

    比如,在index.css中使用import引用demo.css,那么只有index.css文件被下载且解析之后,浏览器才会知道还有另一个demo.css需要下载,此时才会去下载,然后开始解析并且构建render tree

  4. 当使用JS控制DOM去改变样式的时候,只能使用link标签,因为@import不是DOM可以控制的

    当我们做换肤网站的时候,它其实是换一套css样式而已,这时可以通过改变link标签的href值来改变应用不同的样式,但是对于import是没办法操作的,毕竟不是标签。

另外,从性能优化的角度来说,尽量避免使用@import,因为是用@import引入CSS会影响浏览器的并行下载,使用@impor引用的CSS文件只有在引用它的那个CSS文件被下载、解析之后,浏览器才会知道还有另一个CSS需要下载,此时才会下载并且解析,随后构建render tree等操作

多个 @import 会导致下载顺序紊乱。在 IE 中,@import 会引发资源文件的下载顺序被打乱,即排列在 @import 后面的 JS 文件先于 @import 下载,并且打乱甚至破坏 @import 自身的并行下载。

相关文章
|
1月前
|
存储 缓存 前端开发
link 与 @import:CSS 样式表的加载策略(下)
link 与 @import:CSS 样式表的加载策略(下)
|
1月前
|
存储 前端开发 JavaScript
link 与 @import:CSS 样式表的加载策略(上)
link 与 @import:CSS 样式表的加载策略(上)
|
3月前
|
前端开发
css引入方式有几种?link和@import有什么区别?
css引入方式有几种?link和@import有什么区别?
24 0
|
3月前
|
缓存 前端开发
css中Link和@import之间有什么区别?
css中Link和@import之间有什么区别?
|
8月前
|
前端开发
避免使用CSS @import 影响页面加载速度
避免使用CSS @import 影响页面加载速度
35 1
|
9月前
|
前端开发 JavaScript
link和@import的区别?css塌陷是怎么产生的? var、let、const有什么区别?
var、let、const都可以声明变量,var声明的范围是函数作用域,let和const声明的范围是块级作用域。let和const声明的变量不能在声明之前使用,因为它们有暂时性死区,而var可以。
link和@import的区别?css塌陷是怎么产生的?  var、let、const有什么区别?
|
前端开发 JavaScript 容器
CSS基础
CSS基础
86 0
|
前端开发 JavaScript 容器
通俗重制系列--CSS基础
通俗重制系列--CSS基础
104 0
|
前端开发 JavaScript Java
计算机二级web题目(4)--CSS基础
计算机二级web题目(4)--CSS基础
113 1
|
存储 Web App开发 缓存
前端面试题整合(HTML,CSS等基础篇)
前端面试题整合(HTML,CSS等基础篇)
127 0