(X)HTML與CSS的關系就是“內容”與“形式”的關系,由(X)HTML確定網頁的內容,而通過CSS來決定頁面的表現形式。
一、CSS標准簡介
和HTML類似,CSS也是由W3C組織負責制定和發布的。1996年12月,發布了CSS 1.O規范;1998年5月,發布了CSS 2.0規范。目前有兩個新版本正在處於工作狀態。即CSS 2.1版和CSS 3.0版。
圖1所示的是2011年3月24日CSS 3.0發布的待批准的推薦版,讀者可以到http://www.w3.org/TR/下載
然而W3C並沒有任何強制力要求軟件廠商的產品必須符合規范,因此目前流行的浏覽器都沒有完全符合CSS的規范,這也就給設計師設計網頁帶來了一些難題。
但是隨著技術的發展,各種浏覽囂都會逐漸在這方面做更多的努力,相信情況會越來越好。目前,最主流的3種浏覽器是IE 7.0,IE 8.0和Firefox.它們在中國的使用率總和越過了99%,.而以這3種浏覽器為目標.已經完全可以做出顯示非常一致的CSS布局頁面。
在了解了XHTML與HTML之間的關系以後,為了便於講解,本教程在後面的講解中都不再使用XHTML這個名詞,而統一使用HTML,其含義為(X)HTML。
二、在HTML中引入CSS的方法
HTML與CSS是兩個作用不同的語言,它們同時對一個網頁產生作用,因此必須通過一些方法,將CSS與HTML掛接在一起,才能正常工作。
在HTMI中,引入CSS的方法主要有行內式、內嵌式,導入式和鏈接式4種。
1.行內式
行內式即在標記的style屬性中設定CSS樣式,這種方式本質上沒有體現出CSS的優勢,因此不推薦使用。
2.嵌入式
嵌入式則將對頁面中各種元素的設置集中寫在<head>和</head>之阃。對於單一的兩頁。
這種方式很方便。但是對於一個包含很多頁面的網站,如果每個頁面都以內嵌方式設置各自的樣式,就失去了CSS帶來的巨大優點,因此一個網站通常都是編寫一個獨立的CSS樣式表文件,使用以下兩種方式中的一種,引入HTML文檔中。
3.導入式與鏈接式
導入式和鏈接式的目的都是將一個獨立的CSS文件引入HTML文件,二者的區別不大。這裡給出一個比較深入的介紹,因為很多讀者對此都有疑問。
事實上.二者最大的區別在於鏈接式使用HTML的標記引入外部CSS文件,而使用導入式則是使用CSS的規則引入外部CSS文件。因此它們的語法也不同。
如果使用鏈接式,需要使用如下語句引入外部CSS文件。
- <link href="wangyexx.css" rel="stylesheet" type="text/css" />
如果使用導人式,則需要使用如下語句。
- <style type="text/css">
- @import "wangyexx.css";
- </style>
此外,采用這兩種方式後的顯示效果也略有區別。使用鏈接方式時,會在裝載貞面主體部分之前裝載CSS文件,這樣顯示出來的網頁從一開始就是帶有樣式效果的,而使用導入式時,會在整個頁面裝載完成後再裝載CSS文件,對於有的浏覽器來說,在一些情況下,如果網頁文件的體積比較大,則會出現先顯示無樣式的頁麗,閃爍一下之後再出現設置樣式後的效果。從浏覽者的感受來說,這是使用導入式的一個缺陷。
對於一些比較大的網站,為了便於維護,可能會希望把所有的CSS樣式分類別放到幾個CSS文件中,這樣如果使用鏈接式引入,就需要幾個語句分別導入CSS文件。如果要調整CSS文件的分類,就需要同時調整HTML文件。這對於維護工作來說,是一個缺陷。如果使用導入式,則可以只引進一個總的CSS文件,在這個文件中再導人其他獨立的CSS文件;而鏈接則不具備這個特性。
因此這裡給大家的建議是,如果僅需要引入一個CSS文件,則使用鏈接方式;如果需要引入多個CSS文件,則首先用鏈接方式引入一個“目錄”CSS文件,這個“目錄”CSS文件中再使用導人式引入其他CSS文件。
但是如果希望通過JavaScript來動態決定引入哪個css文件,則必須使用鏈接方式才能實現。
這裡給出一個完整的例子,演示各種導入方式的具體寫法。為了在本教程後面的章節中便於講解,大多數情況使用內嵌式來完成,因為所舉的例子通常就是一個獨立的頁面。
假設有如下頁面代碼。
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>網頁示例1</title>
- </head>
- <body>
- <h1 style="color:white; background-color:blue">
- 這裡是一行文本WANGYEXX.COM
- </h1>
- </body>
- </html>
代碼中使用的是行內式,也就是直接在h1標記的style屬性中設置CSS樣式。這裡將文字顏色設置為白色,背景顏色設置為藍色,浏覽器中的效果如圖2所示。
這種方式僅對這一個h1標題產生效果,因此如果希望頁面中的所有h1標記都使用這種樣式,就可以將代碼改造為內嵌式。方法是把樣式從行內移動到head部分,具體的代碼如下。
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>網頁示例2</title>
- <style type="text/css">
- h1{
- background-color:blue;
- color:white
- }
- </style>
- </head>
- <body>
- <h1>這裡是一行文本WANGYEXX.COM</h1>
- <h1>這裡是另一行文本WANGYEXX.COM</h1>
- </body>
- </html>
在head部分,這裡的h1就稱為“選擇器”,即選中了阿頁中的某些特定的元素,後面的樣式規則和前面的行內規則的寫法相同。
注意:每—條規則都要以分號結束.最後一條則不必以分號結束。
這樣,頁面中所有的h1標題都會按照這種效果顯示,如圖3所示。
如果希望把CSS的規則都寫到一個外部獨立的文件中,然後引入HTML.應再單獨寫一個文件,文件名的後綴為.css.內容如下:
- h1{
- background-color:blue;
- color:white;
- }
然後將HTML文檔中的<style></style>部分改為:
- <style type="text/css">
- @import "wangyexx.css";
- </style>
注意:這裡需要指定正確的css文件路徑。
這樣顯示效果與上面的例子完全相同。如果要使用鏈接式引入這個CSS文件,可將上面的<style></style>部分刪除,然後在head部分加入如下語句:
- <link href="wangyexx.css" rel="stylesheet" type="text/css" />
顯示效果也是完全相同的。本節代碼讀者請參考本教程提供下載案例中“第1章”中的示例1.htm至示例4.htm。