我们知道在网页中引用外部css有两种方式,即:@import与link,我们也经常听到有人说要使用link来引入css更好,但是你知道为什么吗?
link就是把外部css与网页连接起来,具体形式
import文字上与link的区别就是它可以把在一个css文件中引入其它几个css文件,具体形式
<!--@import url("styles.css");-->
大部分使用@import方式的人是因为旧的浏览器是不支持@import方式的,这意味着我们可以使用@import来引入只让现代浏览器解析的css样式.
使用以下代码可以使ie6及以下的浏览器无法解析该css(ie6以下的属于年久失修在这里略去方法)
@import url(../style.css) screen;
另一个主要的原因就是当你的网页需要引入几个外部css文件时.你可以使用link引入一个css,然后在这个css文件中用@import方式引入其它几个css文件.这样看起来更容易管理.
使用link方式一个最主要的原因就是你可以让用户切换css样式.现代浏览器如firefox,opera,safari都支持rel=”alternate stylesheet”属性(即可在浏览器上选择不同的风格),当然你还可以使用javascript使得ie也支持用户更换样式.
如不明白,请进入这个页面,然后在firefox中点击”查看-页面风格”.
如果你网页head标签里面十分简单,只有@import属性的话,当用户浏览的网速较慢时,他会看到一个没有风格样式的页面,然后随着css文件被下载完成才可以看到应有的风格.要避免这样的问题,你需要确保head里至少有一个script或是link标签.
04-11更新: @import会使得css整体载入时间变长.并且在ie中会导致文件下载次序被更改,例如放置在@import后面的script文件会在css之前被下载.
详情请参考http://www.stevesouders.com/blog/2009/04/09/dont-use-import/
就目前看来小型的网站还是使用link比较合适(或者说比较流行),当然如果将来我们需要把css进行模块化管理也肯定要用到@import.
文章部分翻译自what’s the difference between @import and link for css? 以作学习之用,欢迎补充.
新闻热点
疑难解答