2010-12-25
我們大部分的設(shè)計師依舊在采用傳統(tǒng)的表格布局、表現(xiàn)與結(jié)構(gòu)混雜在一起的方式來建立網(wǎng)站。學(xué)習(xí)使用XHTML+CSS的方法需要一個過程,使現(xiàn)有網(wǎng)站符合網(wǎng)站標(biāo)準(zhǔn)也不可能一步到位。好的方法是循序漸進(jì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 )
(2)嚴(yán)格型(Strict )
(3)框架型(Frameset )
對于我們初級改善來說,只要選用過渡型的聲明就可以了。它依然可以兼容你的表格布局、表現(xiàn)標(biāo)識等,不至于讓你覺得變化太大,難以掌握。
Tip:你懶得輸入上面過渡型代碼的話,可以訪問http://www.macromedia.com/網(wǎng)站的首頁,然后查看源代碼,把head區(qū)同樣的代碼拷貝粘貼就可以了。
設(shè)定一個名字空間(Namespace)
直接在DOCTYPE聲明后面添加如下代碼:
一個namespace是收集元素類型和屬性名字的一個詳細(xì)的DTD,namespace聲明允許你通過一個在線地址指向來識別你的namespace。只要照樣輸入代碼就可以。
聲明你的編碼語言
為了被瀏覽器正確解釋和通過標(biāo)識校驗(yàn),所有的XHTML文檔都必須聲明它們所使用的編碼語言。代碼如下:
這里聲明的編碼語言是簡體中文GB2312,你如果需要制作繁體內(nèi)容,可以定義為BIG5。
用小寫字母書寫所有的標(biāo)簽
XML對大小寫是敏感的,所以,XHTML也是大小寫有區(qū)別的。所有的XHTML元素和屬性的名字都必須使用小寫。否則你的文檔將被W3C校驗(yàn)認(rèn)為是無效的。例如下面的代碼是不正確的:
正確的寫法是:
改成 ,改成等等。這步轉(zhuǎn)換很簡單。
為圖片添加 alt 屬性
為所有圖片添加alt屬性。alt屬性指定了當(dāng)圖片不能顯示的時候就顯示供替換文本,這樣做對正常用戶可有可無,但對純文本瀏覽器和使用屏幕閱讀機(jī)的用戶來說是至關(guān)重要的。只有添加了alt屬性,代碼才會被W3C正確性校驗(yàn)通過。注意的是我們要添加有意義的alt屬性,象下面這樣的寫法毫無意義:
正確的寫法:
給所有屬性值加引號
在HTML中,你可以不需要給屬性值加引號,但是在XHTML中,它們必須被加引號。
例:height="100",而不能是height=100。
關(guān)閉所有的標(biāo)簽
在XHTML中,每一個打開的標(biāo)簽都必須關(guān)閉。就象這樣:
每一個打開的標(biāo)簽都必須關(guān)閉。
這個規(guī)則可以避免HTML的混亂和麻煩。舉例來說:如果你不關(guān)閉圖像標(biāo)簽,在一些瀏覽器中就可能出現(xiàn)CSS顯示問題。用這種方法能確保頁面和你設(shè)計的一樣顯示。需要說明的是:空標(biāo)簽也要關(guān)閉,在標(biāo)簽尾部使用一個正斜杠"/"來關(guān)閉它們自己。例如:
經(jīng)過上述七個規(guī)則處理后,頁面就基本符合XHTML1.0的要求。但我們還需要校驗(yàn)一下是否真的符合標(biāo)準(zhǔn)了。我們可以利用W3C提供免費(fèi)校驗(yàn)服務(wù)(http://validator.w3.org/)。發(fā)現(xiàn)錯誤后逐個修改。在后面的資源列表中我們也提供了其他校驗(yàn)服務(wù)和對校驗(yàn)進(jìn)行指導(dǎo)的網(wǎng)址,可以作為W3C校驗(yàn)的補(bǔ)充。當(dāng)后通過了XHTML驗(yàn)證,恭喜你已經(jīng)向網(wǎng)站標(biāo)準(zhǔn)邁出了一大步。不是想象中的那么難吧!
2.中級改善
接下來我們的改善主要在結(jié)構(gòu)和表現(xiàn)相分離上,這一步不象第一步那么容易實(shí)現(xiàn),我們需要觀念上的轉(zhuǎn)變,以及對CSS2技術(shù)的學(xué)習(xí)和運(yùn)用。但學(xué)習(xí)任何新知識都需要花點(diǎn)時間的,不是嗎?訣竅在于邊做邊學(xué)。假如你一直采用表格布局,根本沒用過 CSS,也不必急于跟表格布局說再見,你可以先用樣式表代替 font 標(biāo)簽。隨著你學(xué)到的越多,你能做的就越多。好,一起來看看我們需要做哪些事:
用CSS定義元素外觀 文本能夠變成巨大的、粗體的,
我們在寫標(biāo)識時已經(jīng)養(yǎng)成習(xí)慣,當(dāng)希望字體大點(diǎn)就用,希望在前面加個點(diǎn)符號就用
能變成你想要的任何樣子,通過CSS,
能變成小的字體,
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)識:
句子一
句子二
句子三
如果我們采用一個無序列表代替會更好:
你或許會說“但是
給每個表格和表單加上id