引用外部CSS的link和import方式的分析与比较

时间:2023-12-09 19:35:55

很多网页中的 CSS 链接与引用是这样写的:

<style type="text/css" media="screen">
@import url("http://www.abaonet.com/abc.css");
</style>

而很多网站使用的都是 link

 <link rel="stylesheet" rev="stylesheet" href="style.css" media="all" />

  而像 google 百度 163等网站它们都是直接写在网页中。

  当然使用链接 link 和导入 import 的好处就是易于维护,但当网速比较慢的时候,会出

  现加载中断的情况,从而导致页面排版出错。

  他俩的作用相同,唯一的不同是服务对象不一样:

  @import 为 CSS 服务

  link 是为当前的页服务

  外部引用 CSS 中 link 与 @import 的区别:

    本质上,这两种方式都是为了加载 CSS 文件,但还是存在着细微的差别。

  差别1:老祖宗的差别。link 属于 XHTML和html5 标签,而 @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 标签比较好。