如何應(yīng)用WEB標(biāo)準(zhǔn)改善現(xiàn)有網(wǎng)站?
文章導(dǎo)讀:
我們大部分的設(shè)計師依舊在采用傳統(tǒng)的表格布局、表現(xiàn)與結(jié)構(gòu)混雜在一起的方式來建立網(wǎng)站。學(xué)習(xí)使用XHTML+CSS的方法需要一個過程,使現(xiàn)有網(wǎng)站符合網(wǎng)站標(biāo)準(zhǔn)也不可能一步到位。最好的方法是循序漸進,分階段來逐步達(dá)到完全符合網(wǎng)站標(biāo)準(zhǔn)的目標(biāo)。如果你是新手,或者對代碼不是很熟悉,也可以采用遵循標(biāo)準(zhǔn)的編輯工具,例如Dreamweaver MX 2004,它是目前支持CSS標(biāo)準(zhǔn)最完善的工具。
1.初級改善
為頁面添加正確的DOCTYPE
很多設(shè)計師和開發(fā)者都不知道什么是DOCTYPE,DOCTYPE有什么用。DOCTYPE是document type的簡寫。主要用來說明你用的XHTML或者HTML是什么版本。瀏覽器根據(jù)你DOCTYPE定義的DTD(文檔類型定義)來解釋頁面代碼。所以,如果你不注意設(shè)置了錯誤的DOCTYPE,結(jié)果會讓你大吃一驚。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)嚴(yán)格型(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">
對于我們初級改善來說,只要選用過渡型的聲明就可以了。它依然可以兼容你的表格布局、表現(xiàn)標(biāo)識等,不至于讓你覺得變化太大,難以掌握。
Tip:你懶得輸入上面過渡型代碼的話,可以訪問http://www.macromedia.com/網(wǎng)站的首頁,然后查看源代碼,把head區(qū)同樣的代碼拷貝粘貼就可以了。
設(shè)定一個名字空間(Namespace)
直接在DOCTYPE聲明后面添加如下代碼:
<html XMLns="http://www.w3.org/1999/xhtml" >
一個namespace是收集元素類型和屬性名字的一個詳細(xì)的DTD,namespace聲明允許你通過一個在線地址指向來識別你的namespace。只要照樣輸入代碼就可以。
聲明你的編碼語言
為了被瀏覽器正確解釋和通過標(biāo)識校驗,所有的XHTML文檔都必須聲明它們所使用的編碼語言。代碼如下:
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
這里聲明的編碼語言是簡體中文GB2312,你如果需要制作繁體內(nèi)容,可以定義為BIG5。
用小寫字母書寫所有的標(biāo)簽
XML對大小寫是敏感的,所以,XHTML也是大小寫有區(qū)別的。所有的XHTML元素和屬性的名字都必須使用小寫。否則你的文檔將被W3C校驗認(rèn)為是無效的。例如下面的代碼是不正確的:
<TITLE>公司簡介</TITLE>
正確的寫法是:
<title>公司簡介</title> 同樣的,<P>改成<p>,<B>改成<b>等等。
這步轉(zhuǎn)換很簡單。
為圖片添加 alt 屬性
為所有圖片添加alt屬性。alt屬性指定了當(dāng)圖片不能顯示的時候就顯示供替換文本,這樣做對正常用戶可有可無,但對純文本瀏覽器和使用屏幕閱讀機的用戶來說是至關(guān)重要的。只有添加了alt屬性,代碼才會被W3C正確性校驗通過。注意的是我們要添加有意義的alt屬性,象下面這樣的寫法毫無意義:
<img src="logo_unc_120x30.gif" alt="logo_unc_120x30.gif">
正確的寫法:
<img src="logo_unc_120x30.gif" alt="UNC公司標(biāo)志,點擊返回首頁">
給所有屬性值加引號
在HTML中,你可以不需要給屬性值加引號,但是在XHTML中,它們必須被加引號。
例:height="100",而不能是height=100。
關(guān)閉所有的標(biāo)簽
在XHTML中,每一個打開的標(biāo)簽都必須關(guān)閉。就象這樣:
<p>每一個打開的標(biāo)簽都必須關(guān)閉。</p> <b>HTML可以接受不關(guān)閉的標(biāo),XHTML就不可以。</b>
這個規(guī)則可以避免HTML的混亂和麻煩。舉例來說:如果你不關(guān)閉圖像標(biāo)簽,在一些瀏覽器中就可能出現(xiàn)CSS顯示問題。用這種方法能確保頁面和你設(shè)計的一樣顯示。需要說明的是:空標(biāo)簽也要關(guān)閉,在標(biāo)簽尾部使用一個正斜杠"/"來關(guān)閉它們自己。例如:
<br /> <img src="webstandards.gif" />
經(jīng)過上述七個規(guī)則處理后,頁面就基本符合XHTML1.0的要求。但我們還需要校驗一下是否真的符合標(biāo)準(zhǔn)了。我們可以利用W3C提供免費校驗服務(wù)(http://validator.w3.org/)。發(fā)現(xiàn)錯誤后逐個修改。在后面的資源列表中我們也提供了其他校驗服務(wù)和對校驗進行指導(dǎo)的網(wǎng)址,可以作為W3C校驗的補充。當(dāng)最后通過了XHTML驗證,恭喜你已經(jīng)向網(wǎng)站標(biāo)準(zhǔn)邁出了一大步。不是想象中的那么難吧!
2.中級改善
接下來我們的改善主要在結(jié)構(gòu)和表現(xiàn)相分離上,這一步不象第一步那么容易實現(xiàn),我們需要觀念上的轉(zhuǎn)變,以及對CSS2技術(shù)的學(xué)習(xí)和運用。但學(xué)習(xí)任何新知識都需要花點時間的,不是嗎?訣竅在于邊做邊學(xué)。假如你一直采用表格布局,根本沒用過 CSS,也不必急于跟表格布局說再見,你可以先用樣式表代替 font 標(biāo)簽。隨著你學(xué)到的越多,你能做的就越多。好,一起來看看我們需要做哪些事:
用CSS定義元素外觀
我們在寫標(biāo)識時已經(jīng)養(yǎng)成習(xí)慣,當(dāng)希望字體大點就用<h1>,希望在前面加個點符號就用<li>。我們總是想<h1>的意思是大的,<li>的意思是圓點,<b>的意思是“加粗文本”。而實際上, <h1>能變成你想要的任何樣子,通過CSS,<h1>能變成小的字體,<p>文本能夠變成巨大的、粗體的,<li>能夠變成一張圖片等等。我們不能強迫用結(jié)構(gòu)元素實現(xiàn)表現(xiàn)效果,我們應(yīng)該使用CSS來確定那些元素的外觀。例如,我們可以使原來默認(rèn)的6級標(biāo)題可以看起來大小一樣:
h1, h2, h3, h4, h5, h6{ font-family: 宋體, serif; font-size: 12px; }
用結(jié)構(gòu)化元素代替無意義的垃圾
許多人可能從來都不知道HTML和XHTML元素設(shè)計本意是用來表達(dá)結(jié)構(gòu)的。我們很多人已經(jīng)習(xí)慣用元素來控制表現(xiàn),而不是結(jié)構(gòu)。例如,一段列表內(nèi)容可能會使用下面這樣的標(biāo)識:
句子一<br /> 句子二<br /> 句子三<br />
如果我們采用一個無序列表代替會更好:
<ul> <li>句子一</li> <li>句子二</li> <li>句子三</li> </ul>
你或許會說“但是<li>顯示的是一個圓點,我不想用圓點”。事實上,CSS沒有設(shè)定元素看起來是什么樣子,你完全可以用CSS關(guān)掉圓點。
給每個表格和表單加上id
給表格或表單賦予一個唯一的、結(jié)構(gòu)的標(biāo)記,例如
<table id="menu">
接下來,在書寫樣式表的時候,你就可以創(chuàng)建一個“menu”的選擇器,并且關(guān)聯(lián)一個CSS規(guī)則,用來告訴表格單元、文本標(biāo)簽和所有其他元素怎么去顯示。這樣,不需要對每個<td>標(biāo)簽附帶一些多余的、占用帶寬的表現(xiàn)層的高、寬、對齊和背景顏色等等屬性。只需要一個附著的標(biāo)記(標(biāo)記“menu”的id標(biāo)記),你就可以在一個分離的樣式表內(nèi)為干凈的、緊湊的代碼標(biāo)記進行特別的表現(xiàn)層處理。
中級改善我們這里先列主要的三點,但其中包含的內(nèi)容和知識點非常多,需要我們逐步學(xué)習(xí)和掌握,直到最后實現(xiàn)完全采用CSS而不才用任何表格實現(xiàn)布局。