深入理解CSS中的@import
我们知道,css文件引入方式有两种:
1. HTML中使用link标签
- <link rel="stylesheet" href="style.css" />
2.CSS中@import
- @import "style.css";
第一种方式最为常见最为主流,第二种方式则很少见到有人这么写,因而也常被开发工程师所忽略。这篇文章就详细解剖之。
语法
@import语法有两种:
- @import "style.css";
- @import url("style.css");
这两种语法并没什么差别。
规则
import规则一定要先于除了@charset的其他任何CSS规则,这句话是什么意思呢,我们看个例子:
index.html
- <style type="text/css">
- .hd{
- color: orange;
- }
- @import "import.css";
- </style>
- ...
- <p class="hd">我是什么颜色</p>
- import.css
- .hd{
- color: blue;
- }
测试发现,p的颜色并不是import.css里所定义的蓝色,而是之前定义的橘黄色。打开网络请求会发现没有请求import.css文件,这正是因为,再次强调一遍,import规则一定要先于除了@charset的其他任何CSS规则,所以需要将index.html改成酱紫:
- <style type="text/css">
- @import "import.css";
- .hd{
- color: orange;
- }
- </style>
- ...
- <p class="hd">我是什么颜色</p>
这时候能看到import.css网络请求,p的颜色为橘黄色,覆盖了import.css里定义的蓝色。
媒体查询
@import和link一样,同样可以定义媒体查询(media queries),我们先看看link定义的方式:
- <link rel="stylesheet" type="text/css" href="print.css" media="print"/>
接下来是@import:
- @import url("print.css") print;
- @import "common.css" screen, projection;
- @import url('landscape.css') screen and (orientation:landscape);
- @import url('mobile.css') (max-width: 680px);
这里要注意的是,不论是link还是import方式,会下载所有css文件,然后根据媒体去应用css样式,而不是根据媒体去选择性下载css文件。
不要使用@import
这。。坑爹呢,看了一大堆,结果告诉我不要使用!
这也只是个建议,因为import的确会带来一些问题,所以网络上会有各种「抵制@import」的文章,既然设计了@import,总有它的有用之处,不能过于绝对。使用@import影响页面性能的地方主要体现在两个方面:
影响浏览器的并行下载
多个@import导致下载顺序紊乱
相关文章
- link与@import这两种方式都是为了加载CSS文件,但还是存在着细微的差别。下面脚本之家小编给大家介绍CSS中link和@import的区别说明,感兴趣的朋友一起看下吧2016-08-12
- 下面小编就为大家带来一篇浅谈CSS 权值 层叠 重要性(!important)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-08-05
- !important只有Ie7.0和firefox可以识别,但是Ie6.0不能成功应用.!important提升优先级,下面对它的用法做下总结2014-08-08
- 这篇文章主要介绍了加了important标记css样式的jQuery写法,需要的朋友可以参考下2014-07-16
- 使用!important对于性能并没有什么负面影响。但是从可维护性角度考虑还是少用这个规则。不过这个规则在IE6中有bug2014-06-05
- 一直以来写CSS的时候都没有过多的考虑使用@import的方式,最近又看到有朋友在讨论关于@import的一些好坏,以及要不要使用@import的方式加载样式,需要的朋友可以了解下2012-12-12
- 本文章详细的介绍了关于link和@import的区别,有需要了解的朋友可以参考一下本文章2012-03-31
- 我们引用css文件通常有两种方式:link,@import 这两天整理了一下这两种用法的区别,加深认识2010-06-17
- 很多人,包括很多网站(我所见过的所有网站,包括国内著名的‘网页设计师’网站),都说important是不被IE所支持和认识的,可是真的是这样吗?看了下边的两个例子,也许你2010-01-05
Webpack 中 css import 使用 alias 相对路径的方法
在 Vue 项目中,我们通常使用 vue-webpack 脚手架生成工程模板,然后配置 @ 为项目根目录下放资源和源码的 /src 目录的别名。这篇文章给大家介绍Webpack 中 css import 使2018-07-24


最新评论