加載css link與@import的區別:
其實 link 與 @import 在顯示效果上還是有很大區別的,基本上來看 link 的加在會在頁面顯示之前全部加在完全,而 @import 會是讀取完文件之后加在,所以如果網速很好或很快的情況下,會出現先開始無css定義,而后加載css定義。@import加載頁面時開始的瞬間會有閃爍(無樣式表的頁面),然后才恢復正常(加載樣式后的頁面),Link沒有這個問題。
他們從方法上是一樣的,只是在瀏覽器識別上有點差距,link在支持CSS的瀏覽器上都支持而@import只在5.0以上的版本有效,而且還能用於瀏覽器過濾也就是hack的使用,兼容一些老版本的瀏覽器。所以最好還是使用link通用型更強,但是對於高版本的瀏覽器,也就是現在的瀏覽器來說,其實都一樣,這是個沒有太大意義的區分 。
例外一個說明:
@import url(/css/a.css) 很簡單但出現了兼容問題,在ff下無法調用樣式,大家都以為是@import搞的怪,但用link后問題依然出現。經過一番討論原來是絕對路徑在ff下是不認的。
下面對@import url()做一下總結:
1,@import url()機制是不同於link的,link是在加載頁面前把css加載完畢,而@import url()則是讀取完文件后在加載,所以會出現一開始沒有css樣式,閃爍一下出現樣式后的頁面(網速慢的情況下)。
2,@import 是css2里面的,所以古老的ie5不支持。
3,當使用javascript控制dom去改變樣式的時候,只能使用link標簽,因為@import不是dom可以控制的。
4,link除了能加載css外還能定義RSS,定義rel連接屬性,@import只能加載css
所以我認為結合來使用就最好,比如:<link href="css/main.css" rel="stylesheet" type="text/css">
引用了一個main.css文件,在main.css里面再引用@import url(footer.css);@import url(head.css);
這樣達到一個清晰明了的作用.