外部引用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可以控制的。

大致就這幾種差別了(如果還有什麼差別,大家告訴我,我再補充上去),其它的都一樣,從上面的分析來看,還是使用link標籤比較好。

標準網頁製作加載CSS文件時,還應該選定要加載的媒體(media),比如screen,print,或者全部all等。這個我到CSS高級教程中再給大家介紹。

注:

1,網友comehope在留言中提出了另一種區別。

差別5:@import可以在css中再次引入其他樣式表,比如可以創建一個主樣式表,在主樣式表中再引入其他的樣式表,如:

main.css
———————-
@import “sub1.css”;
@import “sub2.css”;

sub1.css
———————-
p {color:red;}

sub2.css
———————-
.myclass {color:blue}

這樣更利於修改和擴展.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章