外部引用 CSS 中 link 与@import 的区别
这两天刚写完 XHTML 加载 CSS 的几种方式,其中外部引用 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 可以控制的。