本文觀點:遵循國際網(wǎng)站標準(Web Standards)進行網(wǎng)站設(shè)計和改善。 閱讀對象:網(wǎng)站設(shè)計人員、web應(yīng)用開發(fā)人員 關(guān)鍵字:Web Standards、XML、XHML、CSS、DOM、DOCTYPE、Accessibility
前言
網(wǎng)絡(luò)上的變革每天都在發(fā)生,當(dāng)我們覺得網(wǎng)站設(shè)計技術(shù)已經(jīng)非常簡單和熟悉的時候。國外網(wǎng)站設(shè)計標準化的概念早已悄悄的形成和迅速“蔓延”,自2000年起,大部分新發(fā)行的瀏覽器版本都開始支持網(wǎng)站標準。主流的網(wǎng)頁編輯工具也開始全面支持網(wǎng)站標準,甚至一些軟件幾乎完全由XML文件組成,例如Dreamweaver MX。一些著名的大型商業(yè)網(wǎng)站開始采用網(wǎng)站標準來重新構(gòu)建(例如體育資訊www.espn.com),另外一些則拒絕非標準瀏覽器瀏覽它們的網(wǎng)站(例如連線雜志www.wired.com)。眾多的設(shè)計網(wǎng)站(例如:www.k10k.net) 和個人網(wǎng)站更是標準推廣的先行者,紛紛轉(zhuǎn)向采用XHTML+CSS來建立。2004年2月4日XML1.1推薦標準正式發(fā)布,標志著網(wǎng)站設(shè)計的標準時代已經(jīng)到來。
國外網(wǎng)站標準的聲勢洶涌,但國內(nèi)業(yè)界顯得有些后知后覺或者毫無興趣,讓我們來看看國內(nèi)三大門戶網(wǎng)站首頁對網(wǎng)站標準的遵循情況:
校驗結(jié)果顯示所有門戶網(wǎng)站都沒有符合網(wǎng)站標準,甚至連HTML4.0標準都沒有遵循。舉例來說:<FONT>標簽,早在1998年4月HTML4.0標準中就已經(jīng)被W3C列為“不建議使用(deprecated)”標簽。但我們的三大門戶網(wǎng)站首頁上都有不少類似<font color=red>的代碼。這里的簡單列表,目的不是批評這些網(wǎng)站做得不好(事實上大部分的大型商業(yè)站點都通不過W3C嚴格的正確性校驗),有很多的原因造成這種狀況,例如采用老的信息發(fā)布系統(tǒng),網(wǎng)頁設(shè)計人員的技術(shù)和意識不夠等等。我們只是想說明一點:連比較規(guī)范的上市公司的網(wǎng)站都沒有意識到遵循標準,其他規(guī)模教小的商業(yè)網(wǎng)站就更不用說,國內(nèi)對網(wǎng)站標準沒有足夠的重視。
讓我們趕緊跟上新時代的步伐,一起來了解一下網(wǎng)站標準吧。
一.為什么要建立網(wǎng)站標準
我們大部分人都有深刻體驗,每當(dāng)主流瀏覽器版本的升級,我們剛建立的網(wǎng)站就可能變得過時,我們就需要升級或者重新建造一遍網(wǎng)站。例如1996-1999年典型的“瀏覽器大戰(zhàn)”,為了兼容Netscape和IE,網(wǎng)站不得不為這兩種瀏覽器寫不同的代碼。同樣的,每當(dāng)新的網(wǎng)絡(luò)技術(shù)和交互設(shè)備的出現(xiàn),我們也需要制作一個新版本來支持這種新技術(shù)或新設(shè)備,例如支持手機上網(wǎng)的WAP技術(shù)。類似的問題舉不勝舉:網(wǎng)站代碼臃腫、繁雜浪費了我們大量的帶寬;針對某種瀏覽器的DHTML特效,屏蔽了部分潛在的客戶;不易用的代碼,殘障人士無法瀏覽網(wǎng)站等等。這是一種惡性循環(huán),是一種巨大的浪費。
如何解決這些問題呢?有識之士早已開始思考,需要建立一種普遍認同的標準來結(jié)束這種無序和混亂。商業(yè)公司(Netscape、Microsoft等)也終于認識到統(tǒng)一標準的好處,因此在W3C(W3C.org)的組織下,網(wǎng)站標準開始被建立(1998年2月10日發(fā)布XML1.0為標志),并在網(wǎng)站標準組織(webstandards.org)的督促下推廣執(zhí)行。
簡單說,網(wǎng)站標準的目的就是:
- 提供最多利益給最多的網(wǎng)站用戶
- 確保任何網(wǎng)站文擋都能夠長期有效
- 簡化代碼、降低建設(shè)成本
- 讓網(wǎng)站更容易使用,能適應(yīng)更多不同用戶和更多網(wǎng)路設(shè)備
- 當(dāng)瀏覽器版本更新,或者出現(xiàn)新的網(wǎng)絡(luò)交互設(shè)備時,確保所有應(yīng)用能夠繼續(xù)正確執(zhí)行。
對于網(wǎng)站設(shè)計和開發(fā)人員來說,遵循網(wǎng)站標準就是使用標準;對于你的網(wǎng)站用戶來說,網(wǎng)站標準就是最佳體驗。
訪問量排名世界第4,中國第1的新浪網(wǎng)站,也遭遇非標準DHTML的問題。在最新發(fā)布的Netscape7和Mozila1.6瀏覽器中,新浪首頁的漂浮廣告全部失效,層疊擠在頁面左下角。也許那些廣告主認為損失這些潛在的用戶無所謂。(截圖日期2004年4月12日)
二.什么是網(wǎng)站標準
網(wǎng)站標準不是某一個標準,而是一系列標準的集合。網(wǎng)頁主要由三部分組成:結(jié)構(gòu)(Structure)、表現(xiàn)(Presentation)和行為(Behavior)。對應(yīng)的標準也分三方面:結(jié)構(gòu)化標準語言主要包括XHTML和XML,表現(xiàn)標準語言主要包括CSS,行為標準主要包括對象模型(如W3C DOM)、ECMAScript等。這些標準大部分由W3C起草和發(fā)布,也有一些是其他標準組織制訂的標準,比如ECMA(European Computer Manufacturers Association)的ECMAScript標準。我們來簡單了解一下這些標準:
1.結(jié)構(gòu)標準語言
(1)XML
XML是The Extensible Markup Language(可擴展標識語言)的簡寫。目前推薦遵循的是W3C于2000年10月6日發(fā)布的XML1.0,參考(www.w3.org/TR/2000/REC-XML-20001006)。和HTML一樣,XML同樣來源于SGML,但XML是一種能定義其他語言的語。XML最初設(shè)計的目的是彌補HTML的不足,以強大的擴展性滿足網(wǎng)絡(luò)信息發(fā)布的需要,后來逐漸用于網(wǎng)絡(luò)數(shù)據(jù)的轉(zhuǎn)換和描述。關(guān)于XML的好處和技術(shù)規(guī)范細節(jié)這里就不多說了,網(wǎng)上有很多資料,也有很多書籍可以參考。
(2)XHTML
XHTML是The Extensible HyperText Markup Language可擴展標識語言的縮寫。目前推薦遵循的是W3C于2000年1月26日推薦XML1.0(參考http://www.w3.org/TR/xhtml1)。XML雖然數(shù)據(jù)轉(zhuǎn)換能力強大,完全可以替代HTML,但面對成千上萬已有的站點,直接采用XML還為時過早。因此,我們在HTML4.0的基礎(chǔ)上,用XML的規(guī)則對其進行擴展,得到了XHTML。簡單的說,建立XHTML的目的就是實現(xiàn)HTML向XML的過渡。
2. 表現(xiàn)標準語言
CSS是Cascading Style Sheets層疊樣式表的縮寫。目前推薦遵循的是W3C于1998年5月12日推薦CSS2(參考http://www.w3.org/TR/CSS2/)。W3C創(chuàng)建CSS標準的目的是以CSS取代HTML表格式布局、幀和其他表現(xiàn)的語言。純CSS布局與結(jié)構(gòu)式XHTML相結(jié)合能幫助設(shè)計師分離外觀與結(jié)構(gòu),使站點的訪問及維護更加容易。
3.行為標準
(1)DOM
DOM是Document Object Model文檔對象模型的縮寫。根據(jù)W3C DOM規(guī)范(http://www.w3.org/DOM/),DOM是一種與瀏覽器,平臺,語言的接口,使得你可以訪問頁面其他的標準組件。簡單理解,DOM解決了Netscaped的Javascript和Microsoft的Jscript之間的沖突,給予web設(shè)計師和開發(fā)者一個標準的方法,讓他們來訪問他們站點中的數(shù)據(jù)、腳本和表現(xiàn)層對像。
(2) ECMAScript
ECMAScript是ECMA(European Computer Manufacturers Association)制定的標準腳本語言(JAVAScript)。目前推薦遵循的是ECMAScript 262(http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM)。
三.遵循標準的網(wǎng)站與傳統(tǒng)網(wǎng)站的區(qū)別
傳統(tǒng)網(wǎng)站只是印刷媒體的延伸,設(shè)計目標是保證在4-6個主流瀏覽器版本中看起來一致。通常的特征是:
- 以表格為基礎(chǔ)的布局。
- 內(nèi)容與表現(xiàn)方式混雜在一起。典型的例子是<font>標簽。
- 垃圾代碼(非標準代碼)。
- 不易用的代碼。
- 語義不正確的代碼。比如<b>不解釋的話,你根本不明白這是字體加粗的意思。
而采用網(wǎng)站標準建立的網(wǎng)站是一個能夠接受各種用戶和各種設(shè)備的廣泛的交流溝通工具。一般特征是:
- 語義正確的標識。即使用能夠表達含義的標簽。保證代碼可以在文本瀏覽器、PDAs、搜索引擎中被正確理解。
- 正確有效的代碼。通過W3C代碼校驗(http://validator.w3.org/)的就是正確代碼。
- 對人、機都易用的代碼。能夠接受廣泛的用戶和設(shè)備的訪問,
- 用CSS分離表現(xiàn)層和內(nèi)容。使代碼更簡潔、下載速度更快,批量修改和定制表現(xiàn)形式更容易。
四.采用網(wǎng)站標準的好處和缺點
1.好處
對網(wǎng)站瀏覽者的好處:
- 文件下載與頁面顯示速度更快;
- 內(nèi)容能被更多的用戶所訪問(包括失明、視弱、色盲等殘障人士);
- 內(nèi)容能被更廣泛的設(shè)備所訪問(包括屏幕閱讀機、手持設(shè)備、搜索機器人、打印機、電冰箱等等)
- 用戶能夠通過樣式選擇定制自己的表現(xiàn)界面
- 所有頁面都能提供適于打印的版本
對網(wǎng)站所有者的好處:
- 更少的代碼和組件,容易維護
- 帶寬要求降低(代碼更簡潔),成本降低。舉個例子:當(dāng) ESPN.com 使用 CSS改版后,每天節(jié)約超過兩兆字節(jié)(terabytes)的帶寬。
- 更容易被搜尋引擎搜索到
- 改版方便,不需要變動頁面內(nèi)容
- 提供打印版本而不需要復(fù)制內(nèi)容
- 提高網(wǎng)站易用性。在美國,有嚴格的法律條款(Section 508)來約束政府網(wǎng)站必須達到一定的易用性,其他國家也有類似的要求。
2.缺點
- 需要花費更多時間來學(xué)習(xí)標準
- 依然需要注意瀏覽器的兼容問題
- 用 CSS 來實現(xiàn)某些表現(xiàn)反而比表格更為麻煩
五.怎么改善現(xiàn)有網(wǎng)站
我們大部分的設(shè)計師依舊在采用傳統(tǒng)的表格布局、表現(xiàn)與結(jié)構(gòu)混雜在一起的方式來建立網(wǎng)站。學(xué)習(xí)使用XHTML+CSS的方法需要一個過程,使現(xiàn)有網(wǎng)站符合網(wǎng)站標準也不可能一步到位。最好的方法是循序漸進,分階段來逐步達到完全符合網(wǎng)站標準的目標。如果你是新手,或者對代碼不是很熟悉,也可以采用遵循標準的編輯工具,例如Dreamweaver MX 2004,它是目前支持CSS標準最完善的工具。
1.初級改善
很多設(shè)計師和開發(fā)者都不知道什么是DOCTYPE,DOCTYPE有什么用。DOCTYPE
是document type的簡寫。主要用來說明你用的XHTML或者HTML是什么版本。瀏覽器根據(jù)你DOCTYPE定義的DTD(文檔類型定義)來解釋頁面代碼。所以,如果你不注意設(shè)置了錯誤的DOCTYPE,結(jié)果會讓你大吃一驚。XHTML1.0提供了三種DOCTYPE可選擇:
過渡型(Transitional )
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
嚴格型(Strict )
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
框架型(Frameset )
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
對于我們初級改善來說,只要選用過渡型的聲明就可以了。它依然可以兼容你的表格布局、表現(xiàn)標識等,不至于讓你覺得變化太大,難以掌握。
Tip:你懶得輸入上面過渡型代碼的話,可以訪問http://www.macromedia.com/網(wǎng)站的首頁,然后查看源代碼,把head區(qū)同樣的代碼拷貝粘貼就可以了。
直接在DOCTYPE聲明后面添加如下代碼:
<html XMLns="http://www.w3.org/1999/xhtml" >
一個namespace是收集元素類型和屬性名字的一個詳細的DTD,namespace聲明允許你通過一個在線地址指向來識別你的namespace。只要照樣輸入代碼就可以。
為了被瀏覽器正確解釋和通過標識校驗,所有的XHTML文檔都必須聲明它們所使用的編碼語言。代碼如下:
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
這里聲明的編碼語言是簡體中文GB2312,你如果需要制作繁體內(nèi)容,可以定義為BIG5。
XML對大小寫是敏感的,所以,XHTML也是大小寫有區(qū)別的。所有的XHTML元素和屬性的名字都必須使用小寫。否則你的文檔將被W3C校驗認為是無效的。例如下面的代碼是不正確的:
<TITLE>公司簡介</TITLE>
正確的寫法是:
<title>公司簡介</title>
同樣的,<P>改成<p>,<B>改成<b>等等。這步轉(zhuǎn)換很簡單。
為所有圖片添加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公司標志,點擊返回首頁”>
在HTML中,你可以不需要給屬性值加引號,但是在XHTML中,它們必須被加引號。
例:height=”100”,而不能是height=100。
在XHTML中,每一個打開的標簽都必須關(guān)閉。就象這樣:
<p>每一個打開的標簽都必須關(guān)閉。</p>
<b>HTML可以接受不關(guān)閉的標,XHTML就不可以。</b>
這個規(guī)則可以避免HTML的混亂和麻煩。舉例來說:如果你不關(guān)閉圖像標簽,在一些瀏覽器中就可能出現(xiàn)CSS顯示問題。用這種方法能確保頁面和你設(shè)計的一樣顯示。需要說明的是:空標簽也要關(guān)閉,在標簽尾部使用一個正斜杠“/”來關(guān)閉它們自己。例如:
<br />
<img src="webstandards.gif" />
2.中級改善
接下來我們的改善主要在結(jié)構(gòu)和表現(xiàn)相分離上,這一步不象第一步那么容易實現(xiàn),我們需要觀念上的轉(zhuǎn)變,以及對CSS2技術(shù)的學(xué)習(xí)和運用。但學(xué)習(xí)任何新知識都需要花點時間的,不是嗎?訣竅在于邊做邊學(xué)。假如你一直采用表格布局,根本沒用過 CSS,也不必急于跟表格布局說再見,你可以先用樣式表代替 font 標簽。隨著你學(xué)到的越多,你能做的就越多。好,一起來看看我們需要做哪些事:
我們在寫標識時已經(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來確定那些元素的外觀。例如,我們可以使原來默認的6級標題可以看起來大小一樣:
h1, h2, h3, h4, h5, h6{
font-family: 宋體, serif;
font-size: 12px;
}
許多人可能從來都不知道HTML和XHTML元素設(shè)計本意是用來表達結(jié)構(gòu)的。我們很多人已經(jīng)習(xí)慣用元素來控制表現(xiàn),而不是結(jié)構(gòu)。例如,一段列表內(nèi)容可能會使用下面這樣的標識:
句子一<br />
句子二<br />
句子三<br />
如果我們采用一個無序列表代替會更好:
<ul>
<li>句子一</li>
<li>句子二</li>
<li>句子三</li>
</ul>
你或許會說“但是<li>顯示的是一個圓點,我不想用圓點”。事實上,CSS沒有設(shè)定元素看起來是什么樣子,你完全可以用CSS關(guān)掉圓點。
給表格或表單賦予一個唯一的、結(jié)構(gòu)的標記,例如
<table id="menu">
接下來,在書寫樣式表的時候,你就可以創(chuàng)建一個“menu”的選擇器,并且關(guān)聯(lián)一個CSS規(guī)則,用來告訴表格單元、文本標簽和所有其他元素怎么去顯示。這樣,不需要對每個<td>標簽附帶一些多余的、占用帶寬的表現(xiàn)層的高、寬、對齊和背景顏色等等屬性。只需要一個附著的標記(標記“menu”的id標記),你就可以在一個分離的樣式表內(nèi)為干凈的、緊湊的代碼標記進行特別的表現(xiàn)層處理。
中級改善我們這里先列主要的三點,但其中包含的內(nèi)容和知識點非常多,需要我們逐步學(xué)習(xí)和掌握,直到最后實現(xiàn)完全采用CSS而不才用任何表格實現(xiàn)布局。限于本文是引導(dǎo)推廣之意,不展開詳述。
最后我們特別需要補充介紹的是網(wǎng)站的易用性(Accessibility)和交互設(shè)計改善,易用性與網(wǎng)站標準有著標準聯(lián)系緊密,和網(wǎng)站標準一樣,都是為了使我們的網(wǎng)站接受更多的用戶訪問。1990年W3C建立了Web Accessibility Initiative(WAI),給網(wǎng)站建造者提供實現(xiàn)可訪問性的方法和策略(http://www.w3.org/WAI/GL/)。提高易用性和研究交互設(shè)計(推薦VB之父Alan Cooper的About Face2.0一書)的策略能提高你的開發(fā)技術(shù),開闊視野。提高你作為專業(yè)網(wǎng)頁設(shè)計師的價值,使你更具競爭力。這正是每個網(wǎng)站所有者和每個設(shè)計師或開發(fā)者要努力達到的目標。
六.網(wǎng)站標準的資源
1.網(wǎng)站標準
http://www.zeldman.com/
http://webstandards.org/
http://webstandardsgroup.org/
http://www.nypl.org/styleguide/
2.有語義代碼
http://brainstormsandraves.com/articles/semantics/structure/
3.校驗(Validation )
http://validator.w3.org/
http://www.htmlhelp.com/tools/validator/
http://webboy.net/presentation/validation.cfm
4.易用性(Accessibility )
http://www.joeclark.org/
http://www.accessify.com/
http://www.juicystudio.com/
5.樣式表CSS
http://webboy.net/presentation/ict2004/01.htm
http://webboy.net/presentation/ict2004/02.htm
http://webboy.net/presentation/ict2004/03.htm
http://westciv.com/style_master/academy/css_tutorial/
http://css.maxdesign.com.au
http://www.thenoodleincident.com/tutorials/css/
6.實例站點(XHTML+CSS)
http://www.macromedia.com/
http://www.k10k.net
http://www.fyrebase.com/
http://www.onetruefit.com/
http://pixeltable.com/
http://www.fishmarketing.net/
附.參考文章及網(wǎng)站
出處:CSDN
責(zé)任編輯:donger
|