首页 > 代码库 > 引用外部CSS的link和import方式的分析与比较
引用外部CSS的link和import方式的分析与比较
很多网页中的 CSS 链接与引用是这样写的:
<style type="text/css" media="screen"> @import url("http://www.abaonet.com/abc.css"); </style>
而很多网站使用的都是 link
<link rel="stylesheet" rev="stylesheet" href=http://www.mamicode.com/"style.css" type="text/css" media="all" />
而像 google 百度 163等网站它们都是直接写在网页中。
当然使用链接 link 和导入 import 的好处就是易于维护,但当网速比较慢的时候,会出现加载中断的情况,从而导致页面排版出错。
他俩的作用相同,唯一的不同是服务对象不一样:
@import 为 CSS 服务
link 是为当前的页服务
外部引用 CSS 中 link 与 @import 的区别:
本质上,这两种方式都是为了加载 CSS 文件,但还是存在着细微的差别。
差别1:老祖宗的差别。link 属于 XHTML 标签,而 @import 完全是 CSS 提供的一种方式。
link 标签除了可以加载 CSS 外,还可以做很多其它的事情,比如定义 RSS,定义 rel 连接属性等,@import 就只能加载 CSS 了。
差别2:加载顺序的差别。当一个页面被加载的时候(就是被浏览者浏览的时候),link 引用的 CSS 会同时被加载,而 @import 引用的 CSS 会等到页面全部被下载完
再被加载。
所以有时候浏览 @import 加载 CSS 的页面时开始会没有样式(就是闪烁),网速慢的时候还挺明显
(梦之都加载 CSS 的方式就是使用 @import,我一边下载一边浏览梦之都网页时,就会出现上述问题)。
差别3:兼容性的差别。由于 @import 是 CSS2.1 提出的,所以老的浏览器不支持,@import 只有在 IE5 以上的才能识别,而 link 标签无此问题。
差别4:使用 dom 控制样式时的差别。当使用 javascript 控制 dom 去改变样式的时候,只能使用 link 标签,因为 @import 不是 dom 可以控制的。
大致就分这几种差别了(如果还有,大家告诉我再补充上去),其他的都一样,从上面的分析来看,还是使用 link 标签比较好。