XHTML+CSS=網站重構

一,什麼是WEB標準?

WEB標準不是某一個標準,而是一系列標準的集合。網頁主要由三部分組成:結構(Structure)、表現(Presentation)和行爲(Behavior)。對應的標準也分三方面:結構化標準語言主要包括XHTML和XML,表現標準語言主要包括CSS,行爲標準主要包括對象模型(如W3C DOM)、ECMAScript等。這些標準大部分由W3C起草和發佈,也有一些是其他標準組織制訂的標準,比如ECMA(European Computer Manufacturers Association)的ECMAScript標準。我們來簡單瞭解一下這些標準:

1.結構標準語言

(1)XML

XML是The Extensible Markup Language(可擴展標識語言)的簡寫。目前推薦遵循的是W3C於2000年10月6日發佈的XML1.0,參考( http://www.w3.org/TR/2000/REC-XML-20001006 )。和HTML一樣,XML同樣來源於SGML,但XML是一種能定義其他語言的語。XML最初設計的目的是彌補HTML的不足,以強大的擴展性滿足網絡信息發佈的需要,後來逐漸用於網絡數據的轉換和描述。關於XML的好處和技術規範細節這裏就不多說了,網上有很多資料,也有很多書籍可以參考。

(2)XHTML

XHTML是The Extensible HyperText Markup Language可擴展標識語言的縮寫。目前推薦遵循的是W3C於2000年1月26日推薦XML1.0(參考 http://www.w3.org/TR/xhtml1 )。XML雖然數據轉換能力強大,完全可以替代HTML,但面對成千上萬已有的站點,直接採用XML還爲時過早。因此,我們在HTML4.0的基礎上,用XML的規則對其進行擴展,得到了XHTML。簡單的說,建立XHTML的目的就是實現HTML向XML的過渡。

2. 表現標準語言

CSS是Cascading Style Sheets層疊樣式表的縮寫。目前推薦遵循的是W3C於1998年5月12日推薦CSS2(參考 http://www.w3.org/TR/CSS2/ )。W3C創建CSS標準的目的是以CSS取代HTML表格式佈局、幀和其他表現的語言。純CSS佈局與結構式XHTML相結合能幫助設計師分離外觀與結構,使站點的訪問及維護更加容易。

3.行爲標準

(1)DOM

DOM是Document Object Model文檔對象模型的縮寫。根據W3C DOM規範( http://www.w3.org/DOM/ ),DOM是一種與瀏覽器,平臺,語言的接口,使得你可以訪問頁面其他的標準組件。簡單理解,DOM解決了Netscaped的Javascript和Microsoft的Jscript之間的衝突,給予web設計師和開發者一個標準的方法,讓他們來訪問他們站點中的數據、腳本和表現層對像。

(2) ECMAScript

ECMAScript是ECMA(European Computer Manufacturers Association)制定的標準腳本語言(JAVAScript)。目前推薦遵循的是ECMAScript 262( http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM )。


二、爲什麼要建立網站標準?


我們大部分人都有深刻體驗,每當主流瀏覽器版本的升級,我們剛建立的網站就可能變得過時,我們就需要升級或者重新建造一遍網站。例如1996-1999年典型的"瀏覽器大戰",爲了兼容Netscape和IE,網站不得不爲這兩種瀏覽器寫不同的代碼。同樣的,每當新的網絡技術和交互設備的出現,我們也需要製作一個新版本來支持這種新技術或新設備,例如支持手機上網的WAP技術。類似的問題舉不勝舉:網站代碼臃腫、繁雜浪費了我們大量的帶寬;針對某種瀏覽器的DHTML特效,屏蔽了部分潛在的客戶;不易用的代碼,殘障人士無法瀏覽網站等等。這是一種惡性循環,是一種巨大的浪費。

如何解決這些問題呢?有識之士早已開始思考,需要建立一種普遍認同的標準來結束這種無序和混亂。商業公司(Netscape、Microsoft等)也終於認識到統一標準的好處,因此在W3C(W3C.org)的組織下,網站標準開始被建立(1998年2月10日發佈XML1.0爲標誌),並在網站標準組織(webstandards.org)的督促下推廣執行。

簡單說,網站標準的目的就是:

提供最多利益給最多的網站用戶
確保任何網站文擋都能夠長期有效
簡化代碼、降低建設成本
讓網站更容易使用,能適應更多不同用戶和更多網路設備
當瀏覽器版本更新,或者出現新的網絡交互設備時,確保所有應用能夠繼續正確執行。
對於網站設計和開發人員來說,遵循網站標準就是使用標準;對於你的網站用戶來說,網站標準就是最佳體驗。

三、採用網站標準有什麼好處?

對網站瀏覽者的好處:

文件下載與頁面顯示速度更快;
內容能被更多的用戶所訪問(包括失明、視弱、色盲等殘障人士);
內容能被更廣泛的設備所訪問(包括屏幕閱讀機、手持設備、搜索機器人、打印機、電冰箱等等)
用戶能夠通過樣式選擇定製自己的表現界面
所有頁面都能提供適於打印的版本

對網站所有者的好處:

更少的代碼和組件,容易維護
帶寬要求降低(代碼更簡潔),成本降低。舉個例子:當 ESPN.com 使用 CSS改版後,每天節約超過兩兆字節(terabytes)的帶寬。
更容易被搜尋引擎搜索到
改版方便,不需要變動頁面內容
提供打印版本而不需要複製內容
提高網站易用性。在美國,有嚴格的法律條款(Section 508)來約束政府網站必須達到一定的易用性,其他國家也有類似的要求。

四、怎麼改善現有網站?

我們大部分的設計師依舊在採用傳統的表格佈局、表現與結構混雜在一起的方式來建立網站。學習使用XHTML CSS的方法需要一個過程,使現有網站符合網站標準也不可能一步到位。最好的方法是循序漸進,分階段來逐步達到完全符合網站標準的目標。如果你是新手,或者對代碼不是很熟悉,也可以採用遵循標準的編輯工具,例如Dreamweaver MX 2004,它是目前支持CSS標準最完善的工具。

1.初級改善

爲頁面添加正確的DOCTYPE

很多設計師和開發者都不知道什麼是DOCTYPE,DOCTYPE有什麼用。DOCTYPE是document type的簡寫。主要用來說明你用的XHTML或者HTML是什麼版本。瀏覽器根據你DOCTYPE定義的DTD(文檔類型定義)來解釋頁面代碼。所以,如果你不注意設置了錯誤的DOCTYPE,結果會讓你大喫一驚。XHTML1.0提供了三種DOCTYPE可選擇:

(1)過渡型(Transitional )
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1 /DTD/xhtml1-transitional.dtd">
(2)嚴格型(Strict )
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1 /DTD/xhtml1-strict.dtd">
(3)框架型(Frameset )
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1 /DTD/xhtml1-frameset.dtd">
對於我們初級改善來說,只要選用過渡型的聲明就可以了。它依然可以兼容你的表格佈局、表現標識等,不至於讓你覺得變化太大,難以掌握。

Tip:你懶得輸入上面過渡型代碼的話,可以訪問 http://www.macromedia.com/ 網站的首頁,然後查看源代碼,把head區同樣的代碼拷貝粘貼就可以了。

設定一個名字空間(Namespace)

直接在DOCTYPE聲明後面添加如下代碼:
<html XMLns="'" DESIGNTIMESP=32309>http://www.w3.org/1999/xhtml">
一個namespace是收集元素類型和屬性名字的一個詳細的DTD,namespace聲明允許你通過一個在線地址指向來識別你的namespace。只要照樣輸入代碼就可以。

聲明你的編碼語言

爲了被瀏覽器正確解釋和通過標識校驗,所有的XHTML文檔都必須聲明它們所使用的編碼語言。代碼如下:
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
這裏聲明的編碼語言是簡體中文GB2312,你如果需要製作繁體內容,可以定義爲BIG5。

用小寫字母書寫所有的標籤

XML對大小寫是敏感的,所以,XHTML也是大小寫有區別的。所有的XHTML元素和屬性的名字都必須使用小寫。否則你的文檔將被W3C校驗認爲是無效的。例如下面的代碼是不正確的:
<TITLE>公司簡介</TITLE>
正確的寫法是:
<title>公司簡介</title>
同樣的,<P>改成<p>,<B>改成<b>等等。這步轉換很簡單。

爲圖片添加 alt 屬性

爲所有圖片添加alt屬性。alt屬性指定了當圖片不能顯示的時候就顯示供替換文本,這樣做對正常用戶可有可無,但對純文本瀏覽器和使用屏幕閱讀機的用戶來說是至關重要的。只有添加了alt屬性,代碼纔會被W3C正確性校驗通過。注意的是我們要添加有意義的alt屬性,象下面這樣的寫法毫無意義:
<img src="logo_unc_120x30.gif" alt="logo_unc_120x30.gif">
正確的寫法:
<img src="logo_unc_120x30.gif" alt="UNC公司標誌,點擊返回首頁">
給所有屬性值加引號
在HTML中,你可以不需要給屬性值加引號,但是在XHTML中,它們必須被加引號。

例:
height="100",而不能是height=100。
關閉所有的標籤
在XHTML中,每一個打開的標籤都必須關閉。就象這樣:
<p>每一個打開的標籤都必須關閉。</p> <b>HTML可以接受不關閉的標,XHTML就不可以。</b>

這個規則可以避免HTML的混亂和麻煩。舉例來說:如果你不關閉圖像標籤,在一些瀏覽器中就可能出現CSS顯示問題。用這種方法能確保頁面和你設計的一樣顯示。需要說明的是:空標籤也要關閉,在標籤尾部使用一個正斜槓"/"來關閉它們自己。例如:
<br /> <img src="webstandards.gif" />
經過上述七個規則處理後,頁面就基本符合XHTML1.0的要求。但我們還需要校驗一下是否真的符合標準了。我們可以利用W3C提供免費校驗服務( http://validator.w3.org/ )。發現錯誤後逐個修改。在後面的資源列表中我們也提供了其他校驗服務和對校驗進行指導的網址,可以作爲W3C校驗的補充。當最後通過了XHTML驗證,恭喜你已經向網站標準邁出了一大步。不是想象中的那麼難吧!

2.中級改善

接下來我們的改善主要在結構和表現相分離上,這一步不象第一步那麼容易實現,我們需要觀念上的轉變,以及對CSS2技術的學習和運用。但學習任何新知識都需要花點時間的,不是嗎?訣竅在於邊做邊學。假如你一直採用表格佈局,根本沒用過 CSS,也不必急於跟表格佈局說再見,你可以先用樣式表代替 font 標籤。隨着你學到的越多,你能做的就越多。好,一起來看看我們需要做哪些事:

用CSS定義元素外觀

我們在寫標識時已經養成習慣,當希望字體大點就用<h1>,希望在前面加個點符號就用<li>。我們總是想<h1>的意思是大的,<li>的意思是圓點,<b>的意思是“加粗文本”。而實際上, <h1>能變成你想要的任何樣子,通過CSS,<h1>能變成小的字體,<p>文本能夠變成巨大的、粗體的,<li>能夠變成一張圖片等等。我們不能強迫用結構元素實現表現效果,我們應該使用CSS來確定那些元素的外觀。

例如,我們可以使原來默認的6級標題可以看起來大小一樣:
h1, h2, h3, h4, h5, h6{ font-family: 宋體, serif; font-size: 12px; }

用結構化元素代替無意義的垃圾

許多人可能從來都不知道HTML和XHTML元素設計本意是用來表達結構的。我們很多人已經習慣用元素來控制表現,而不是結構。例如,一段列表內容可能會使用下面這樣的標識:
句子一<br /> 句子二<br /> 句子三<br />
如果我們採用一個無序列表代替會更好:
<ul> <li>句子一</li> <li>句子二</li> <li>句子三</li> </ul>
你或許會說“但是<li>顯示的是一個圓點,我不想用圓點”。事實上,CSS沒有設定元素看起來是什麼樣子,你完全可以用CSS關掉圓點。

給每個表格和表單加上id
給表格或表單賦予一個唯一的、結構的標記,例如
<table id="menu">
接下來,在書寫樣式表的時候,你就可以創建一個“menu”的選擇器,並且關聯一個CSS規則,用來告訴表格單元、文本標籤和所有其他元素怎麼去顯示。這樣,不需要對每個%lt;td>標籤附帶一些多餘的、佔用帶寬的表現層的高、寬、對齊和背景顏色等等屬性。只需要一個附着的標記(標記“menu”的id標記),你就可以在一個分離的樣式表內爲乾淨的、緊湊的代碼標記進行特別的表現層處理。

中級改善我們這裏先列主要的三點,但其中包含的內容和知識點非常多,需要我們逐步學習和掌握,直到最後實現完全採用CSS而不才用任何表格實現佈局。

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