对于 CSS 的载入方式,在这里咬文嚼字下。这篇主要探讨 CSS 的两种载入方式:@import 和 link 元素间的差异。

link 是在 (X)HTML 文档中的语义是「 页面资源 」(当然也会包括 CSS),而 @import 只是 CSS2.1 的语句。

使用 @import 可以使各 CSS 文件间相互嵌套。在 Explorer5.x 时代, 同时也是浏览器间判断是否支持 CSS2.1 的一个方法

其实,我们最关注的是 @import 和 link 两种不同的 CSS 载入方式的性能问题。先写了两个简单的脚本,让 CSS 文件延时 5 中载入,可以在各浏览器下看看结果 使用 @import 使用 link

可以看见,Exploer 系列在使用 @import 方式时,会先载入文档,然后再载入样式;而在其他浏览器以及其他情况下,都需要等待样式载入完毕以后统一渲染。

总结下我个人的看法。我个人倾向于使用 link 方式,主要是下面的几个原因

  1. CSS 文件也是页面资源的一部分(更佳的语义)
  2. 没有各浏览器间的载入分歧
  3. 便于 Javascript 操作(link 是 HTML 结构的一部分,而 @import 载入的只能操作 style 节点)

当然,应用 @import 的场合也很多,比如在无法更改页面结构、或者是需要统一的 CSS 入口的情况下等。

参考阅读