import引css,深入理解CSS中的@import

本文解析了CSS中的@import规则,包括其语法、使用规范及媒体查询,并对比了link标签引入CSS的方法,最后讨论了@import可能带来的性能问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们知道,css文件引入方式有两种:

1. HTML中使用link标签

XML/HTML Code复制内容到剪贴板

2.CSS中@import

CSS Code复制内容到剪贴板

@import"style.css";

第一种方式最为常见最为主流,第二种方式则很少见到有人这么写,因而也常被开发工程师所忽略。这篇文章就详细解剖之。

语法

@import语法有两种:

CSS Code复制内容到剪贴板

@import"style.css";

@importurl("style.css");

这两种语法并没什么差别。

规则import规则一定要先于除了@charset的其他任何CSS规则,这句话是什么意思呢,我们看个例子:

index.html

CSS Code复制内容到剪贴板

.hd{

color: orange;

}

@import"import.css";

...

我是什么颜色

import.css

.hd{

color:blue;

}

测试发现,p的颜色并不是import.css里所定义的蓝色,而是之前定义的橘黄色。打开网络请求会发现没有请求import.css文件,这正是因为,再次强调一遍,import规则一定要先于除了@charset的其他任何CSS规则,所以需要将index.html改成酱紫:

CSS Code复制内容到剪贴板

@import"import.css";

.hd{

color: orange;

}

...

我是什么颜色

这时候能看到import.css网络请求,p的颜色为橘黄色,覆盖了import.css里定义的蓝色。

媒体查询

@import和link一样,同样可以定义媒体查询(media queries),我们先看看link定义的方式:

CSS Code复制内容到剪贴板

接下来是@import:

CSS Code复制内容到剪贴板

@importurl("print.css")print;

@import"common.css"screen,projection;

@importurl('landscape.css')screenand (orientation:landscape);

@importurl('mobile.css') (max-width:680px);

这里要注意的是,不论是link还是import方式,会下载所有css文件,然后根据媒体去应用css样式,而不是根据媒体去选择性下载css文件。

不要使用@import

这。。坑爹呢,看了一大堆,结果告诉我不要使用!

这也只是个建议,因为import的确会带来一些问题,所以网络上会有各种「抵制@import」的文章,既然设计了@import,总有它的有用之处,不能过于绝对。使用@import影响页面性能的地方主要体现在两个方面:

影响浏览器的并行下载

多个@import导致下载顺序紊乱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值