您當前位置:圖趣網(wǎng)(Tuquu) >> 網(wǎng)頁設計教程 >> 移動前端 >> 瀏覽設計教程

網(wǎng)頁前端開發(fā)-link和@import的區(qū)別深入探討

頁面中使用CSS的方式主要有3種:行內(nèi)添加定義style屬性值,頁面頭部內(nèi)嵌調(diào)用和外面鏈接調(diào)用,其中外面引用有兩種:link和@import。外部引用CSS兩種方式link和@import的方式分別是: 

XML/HTML代碼 



復制代碼
代碼如下:

<link rel="stylesheet" rev="stylesheet" href="CSS文件" type="text/css" media="all" /> 

XML/HTML代碼 



復制代碼
代碼如下:

<style type="text/css" media="screen"> 
@import url("CSS文件"); 
</style> 

兩者都是外部引用CSS的方式,但是存在一定的區(qū)別: 

  區(qū)別1:link是XHTML標簽,除了加載CSS外,還可以定義RSS等其他事務;@import屬于CSS范疇,只能加載CSS。 

  區(qū)別2:link引用CSS時,在頁面載入時同時加載;@import需要頁面網(wǎng)頁完全載入以后加載。 

  區(qū)別3:link是XHTML標簽,無兼容問題;@import是在CSS2.1提出的,低版本的瀏覽器不支持。 

  區(qū)別4:ink支持使用Javascript控制DOM去改變樣式;而@import不支持。 

補充:@import最優(yōu)寫法 
@import的寫法一般有下列幾種: 

@import 'style.css' //Windows IE4/ NS4, Mac OS X IE5, Macintosh IE4/IE5/NS4不識別 
@import "style.css" //Windows IE4/ NS4, Macintosh IE4/NS4不識別 
@import url(style.css) //Windows NS4, Macintosh NS4不識別 
@import url('style.css') //Windows NS4, Mac OS X IE5, Macintosh IE4/IE5/NS4不識別 
@import url("style.css") //Windows NS4, Macintosh NS4不識別 
由上分析知道,@import url(style.css) 和@import url("style.css")是最優(yōu)的選擇,兼容的瀏覽器最多。從字節(jié)優(yōu)化的角度來看@import url(style.css)最值得推薦。 

外部引用CSS中 link與@import的區(qū)別 

這兩天剛寫完XHTML加載CSS的幾種方式,其中外部引用CSS分為兩種方式link和@import。 
本質上,這兩種方式都是為了加載CSS文件,但還是存在著細微的差別。 
差別1:老祖宗的差別。link屬于XHTML標簽,而@import完全是CSS提供的一種方式。 
link標簽除了可以加載CSS外,還可以做很多其它的事情,比如定義RSS,定義rel連接屬性等,@import就只能加載CSS了。 
差別2:加載順序的差別。當一個頁面被加載的時候(就是被瀏覽者瀏覽的時候),link引用的CSS會同時被加載,而@import引用的CSS會等到頁面全部被下載完再被加載。所以有時候瀏覽@import加載CSS的頁面時開始會沒有樣式(就是閃爍),網(wǎng)速慢的時候還挺明顯(夢之都加載CSS的方式就是使用@import,我一邊下載一邊瀏覽夢之都網(wǎng)頁時,就會出現(xiàn)上述問題)。 
差別3:兼容性的差別。由于@import是CSS2.1提出的所以老的瀏覽器不支持,@import只有在IE5以上的才能識別,而link標簽無此問題。 
差別4:使用dom控制樣式時的差別。當使用javascript控制dom去改變樣式的時候,只能使用link標簽,因為@import不是dom可以控制的。 
大致就這幾種差別了(如果還有什么差別,大家告訴我,我再補充上去),其它的都一樣,從上面的分析來看,還是使用link標簽比較好。 
標準網(wǎng)頁制作加載CSS文件時,還應該選定要加載的媒體(media),比如screen,print,或者全部all等。這個我到CSS高級教程中再給大家介紹。 
注: 
1,網(wǎng)友comehope在留言中提出了另一種區(qū)別。 
差別5:@import可以在css中再次引入其他樣式表,比如可以創(chuàng)建一個主樣式表,在主樣式表中再引入其他的樣式表,如: 
main.css 



復制代碼
代碼如下:

———————- 
@import “sub1.css”; 
@import “sub2.css”; 
sub1.css 
———————- 
p {color:red;} 
sub2.css 
———————- 
.myclass {color:blue} 

這樣更利于修改和擴展. 
猴子提示:這樣做有一個缺點,會對網(wǎng)站服務器產(chǎn)生過多的HTTP請求,以前是一個文件,而現(xiàn)在卻是兩個或更多文件了,服務器的壓力增大,瀏覽量大的網(wǎng)站還是謹慎使用。有興趣的可以觀察一下像新浪等網(wǎng)站的首頁或欄目首頁代碼,他們總會把css或js直接寫在html里,而不用外部文件。

[教程作者:admin]
免責聲明:本站文章系圖趣網(wǎng)整理發(fā)布,如需轉載,請注明出處,素材資料僅供個人學習與參考,請勿用于商業(yè)用途!
本文地址:http://m.likemindfilms.com/tutorial/wd1498.html
給網(wǎng)頁設計師和前端開發(fā)者看的前端性能優(yōu)化
網(wǎng)頁前端開發(fā)-src與href屬性的區(qū)別
圖趣網(wǎng)微信
建議反饋
×