我們知道在網頁中引用外部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?以作學習之用,歡迎補充.