CSS引入的方式有哪些? link和@import的區別?

來源:互聯網
上載者:User

HTML檔案是通過CSS樣式進行顯示的控制的,也就是結合XHTML與CSS來表現頁面內容。那麼到底有哪些方式在XHTML檔案中引入CSS樣式呢?

一、內聯引用CSS

將STYLE屬性直接加在個別的元件標籤裡,<元件(標籤) STYLE="性質(屬性)1: 設定值1; 性質(屬性)2: 設定值2; ...}
例如: 

<td style="color:#c00; font-size:15px; line-height:18px;>
模板無憂 - www.mb5u.com
</td>


這種方法優點:可靈巧應用樣式於各標籤中。方便於編寫代碼時的使用。
這種方法缺點:沒有整篇檔案的“統一性”,在需要修改某樣式的時候也變的比較困難。

二、內部引用CSS

將樣式規則寫在<STYLE>...</STYLE>標籤之中。

<STYLE TYPE="text/CSS">
<!--
樣式規則表
--> 
</STYLE>
通常是將整個的 <STYLE>...</STYLE>結構寫在網頁的<HEAD> </HEAD>部份之中。
這種方法的優點:整篇文章有了統一性,只要是有聲明的的元件即會套用該樣式規則。
這種方法的缺點:個別元件的靈活度不足,整站的功能性較弱。

三、外部參考 link 標籤引用CSS

將樣式規則寫在.css的樣式檔案中,再以<link>標籤引入。 
假設我們把樣式規則存成一個example.css的檔案,我們只要在網頁中加入:

  <link rel=stylesheet type="text/css" href="example.css">

這樣引入該css樣式表檔案以後,就可以直接套用該樣式檔案中所制定的樣式了。 通常是將link標籤寫在網頁的<head></head>部份之中。
這種方法的優點:可以把要套用相同樣式規則的數篇檔案都指定到同一個樣式檔案中,可以進行統一的修改,也便於整站的設定有統一的風格。
一般css網頁布局都使用此種方法。

這種方法的缺點:在個別檔案或元素的靈活度不足。 

四、外部參考 @import 引用CSS

跟link方法很像,但必須放在<STYLE>...</STYLE> 中: <STYLE TYPE="text/css">
<!--
@import url(引入的樣式表的位址、路徑與檔名);
-->
</STYLE>

例如: <STYLE TYPE="text/css">
<!--
@import url(css/example.css);
-->
</STYLE>

要注重的是,行末的分號是必須的!千萬不能漏寫!
這種方法的優點:可以靈活的引入css檔案對xhtml元素進行控制。有時候也用來編寫某些css hack。
這種方法的缺點:在個別檔案或元素的靈活度不足。  

本質上,這兩種方式都是為了載入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}

這樣更利於修改和擴充.

猴子提示:這樣做有一個缺點,會對網站伺服器產生過多的HTTP請求,以前是一個檔案,而現在卻是兩個或更多檔案 了,伺服器的壓力增大,瀏覽量大的網站還是謹慎使用。有興趣的可以觀察一下像新浪等網站的首頁或欄目首頁代碼,他們總會把css或js直接寫在html 裡,而不用外部檔案。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.