掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
本節(jié)主要從五個(gè)方面來(lái)向大家介紹一下外部引用CSS中l(wèi)ink與@import的區(qū)別,比如link屬于XHTML標(biāo)簽,而@import完全是CSS提供的一種方式,link標(biāo)簽除了可以加載CSS外,還可以做很多其它的事情,比如定義RSS,定義rel連接屬性等,@import就只能加載CSS了。

外部引用CSS中l(wèi)ink與@import的區(qū)別
這兩天剛寫(xiě)完XHTML加載CSS的幾種方式,其中外部引用CSS分為兩種方式link和@import。本質(zhì)上,這兩種方式都是為了加載CSS文件,但還是存在著細(xì)微的差別。
差別1:老祖宗的差別。
link屬于XHTML標(biāo)簽,而@import完全是CSS提供的一種方式。
link標(biāo)簽除了可以加載CSS外,還可以做很多其它的事情,比如定義RSS,定義rel連接屬性等,@import就只能加載CSS了。
差別2:加載順序的差別。
當(dāng)一個(gè)頁(yè)面被加載的時(shí)候(就是被瀏覽者瀏覽的時(shí)候),link引用的CSS會(huì)同時(shí)被加載,而@import引用的CSS會(huì)等到頁(yè)面全部被下載完再被加載。所以有時(shí)候?yàn)g覽@import加載CSS的頁(yè)面時(shí)開(kāi)始會(huì)沒(méi)有樣式(就是閃爍),網(wǎng)速慢的時(shí)候還挺明顯(夢(mèng)之都加載CSS的方式就是使用@import,我一邊下載一邊瀏覽夢(mèng)之都網(wǎng)頁(yè)時(shí),就會(huì)出現(xiàn)上述問(wèn)題)。
差別3:兼容性的差別。
由于@import是CSS2.1提出的所以老的瀏覽器不支持,@import只有在IE5以上的才能識(shí)別,而link標(biāo)簽無(wú)此問(wèn)題。
差別4:使用dom控制樣式時(shí)的差別。
當(dāng)使用javascript控制dom去改變樣式的時(shí)候,只能使用link標(biāo)簽,因?yàn)锧import不是dom可以控制的。
差別5:@import可以在css中再次引入其他樣式表,比如可以創(chuàng)建一個(gè)主樣式表,在主樣式表中再引入其他的樣式表,如:
- main.css
- ———————-
- @import“sub1.css”;
- @import“sub2.css”;
- sub1.css
- ———————-
- p{color:red;}
- sub2.css
- ———————-
- .myclass{color:blue}
這樣更利于修改和擴(kuò)展.
大致就這幾種差別了,其它的都一樣,從上面的分析來(lái)看,還是使用link標(biāo)簽比較好。
標(biāo)準(zhǔn)網(wǎng)頁(yè)制作加載CSS文件時(shí),還應(yīng)該選定要加載的媒體(media),比如screen,print,或者全部all等。這個(gè)我到CSS高級(jí)教程中再給大家介紹。
【編輯推薦】

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流