原文在http://mezzoblue.com/archives/2004/04/30/a_roadmap_to/#000571
作者前言 今天下午,我的一個朋友問我:對于一個想了解web標(biāo)準(zhǔn)的老網(wǎng)頁設(shè)計師有什么建議。
我想將我的email回復(fù)貼在這里讓更多人看見將是一個很好的范例。我的回復(fù)是:這有一個全面的,非正式的,有些羅嗦的指南,送給所有聽說過web標(biāo)準(zhǔn),希望使用web標(biāo)準(zhǔn)卻又不知道從哪里開始設(shè)計師。
正文 首先不要急著開始!在做任何事情之前做好2個心理準(zhǔn)備,這對你的學(xué)習(xí)過程是最重要的事情:
1).學(xué)習(xí)需要時間,要循序漸進; 2).前進的過程中會遇到挫折。 但是你并不孤獨,我們中許多人正在投入到學(xué)習(xí)和使用web標(biāo)準(zhǔn)的行列中來。有一個不斷擴大的團體來幫助你更容易地學(xué)習(xí),老手在學(xué)習(xí)技術(shù)和技巧的過程中遇到許多困難,幸運的后來者(包括我自己)將從他們的汗水與淚水中獲益。
當(dāng)最后,你能熟練使用基于web標(biāo)準(zhǔn)的設(shè)計方法(使那些傳統(tǒng)的基于表格的方法顯得黯然無光)時,回頭再看,你將驚奇用CSS布局頁面并不是那么難。哦,當(dāng)然,如果主流瀏覽器能對CSS2規(guī)范中的一些操作支持更好,實際上使用時可能會更加容易。
恩,我好象有點跑題了。
那么,讓我們立刻開始了解實際有用的信息。首先,去買一本《Designing With Web Standards》(中文版已經(jīng)引入),不用多想,立刻去做。已經(jīng)有了?好,現(xiàn)在就閱讀它,不要讓它積滿灰塵。我想說的每一點在書里都有詳細的解釋。書分為平均的兩部分,宣言(為什么你應(yīng)該怎么做)和教程(你怎樣去做)。這對你是有用的。
現(xiàn)在,第一件事情就是樹立一個XHTML的思想體系概念,不管你選擇HTML4.01或者XHTML 1.0 Strict(有很多理由選擇其中的任一種,現(xiàn)在你可以先忽略這些,以后不能忽略,除非你準(zhǔn)備做讓人麻木的苦差事。),所有的文檔以選擇一個DOCTYPE開始。告訴瀏覽器你的文檔用什么標(biāo)記語言,這樣做可以防止出現(xiàn)不必要的表現(xiàn)錯誤,否則糟糕的頁面顯示結(jié)果會使你瘋狂。打個比方:我想飛往芝加哥,就必須告訴旅行社我要去哪里,否則可能無目的的亂飛到維也納。要顯示的是HTML或者XHTML,你必須先告訴瀏覽器,設(shè)置DOCTYPE可以確保我到達"目的地"。
下一個目標(biāo):嚴謹格式的標(biāo)識。這非常容易掌握。把所有的屬性加上引號(例如:<a href="link">);正確的嵌套標(biāo)識;關(guān)閉所有打開的標(biāo)識(例如:<input type="text" />)。每一個標(biāo)識或者元素都需要關(guān)閉。
快速注釋:不知道什么時候,標(biāo)識(tags)變成了元素(elements),它們是相同的含意,不同的說法。不管你怎么稱呼它們,現(xiàn)在正確的稱呼似乎應(yīng)該是"元素",也許一開始就是這樣的,我不知道也沒有人告訴過我。
無論如何,每一個元素都必須被正確的關(guān)閉。如果你使用HTML4.01,可以不考慮單獨元素象<br>,<hr>和<input>,如果你使用XHTML,單獨元素也必須關(guān)閉,就是在最后加一個斜杠,例如:<br>變成<br />。
接下來,是一個有點令人糊涂的、關(guān)于XHTML屬性的規(guī)則:所有的屬性都必須有一個值,如果沒有值,就用它本身。例如<input type="radio" checked="checked" />。在HTML4.01中checked是不需要值的,而XHTML中它是必須的。
最后,XHTML需要你用小寫寫所有的代碼,HTML不區(qū)分大小寫,但XHTML區(qū)分,它遵循的是XML語法規(guī)則。
上面就是所有關(guān)于標(biāo)識的變化!你已經(jīng)都知道了!深呼吸、喝口啤酒,放松一下。因為那只是第一步。
第二節(jié)
現(xiàn)在,我們開始學(xué)習(xí)撰寫正確的HTML/XHTMLL,并在W3組織的校驗器(validator)里校驗它們。如果你寫得正確,你將看到一個藍底黃字的成功信息。嘗試喜歡這種顏色/字體組合吧,它將是你最好的朋友。
為什么校驗?zāi)敲粗匾坑惺裁搓P(guān)系嗎?因為poorly-written(隨意的、不嚴謹?shù)?標(biāo)識將帶來完全的不可預(yù)知性。頁面的"生死"完全依賴于瀏覽器的錯誤處理方式,盡管大多數(shù)瀏覽器還能很好的支持poorly-written標(biāo)識,但這是不正確的習(xí)慣。嗨,是什么使得我們習(xí)慣非標(biāo)準(zhǔn)?首要原因是瀏覽器大戰(zhàn),1995年微軟能夠從Netscape地盤里競爭獲得市場就是因為IE對網(wǎng)頁錯誤的處理方式和 Netscape 一模一樣。
另一個觀點是:校驗幫助你發(fā)現(xiàn)錯誤的代碼,確保你的頁面有更一致的表現(xiàn)。校驗代碼是我調(diào)試布局的第一件事,相信你也是。
ok,當(dāng)你第一次校驗?zāi)愕牡谝粋站點,你很可能需要忍受一下反饋回來的七八十條不可思議的錯誤信息。不幸的,雖然校驗有幫助信息,但并不完美,它只是由一些志愿者維護的。好消息是那些錯誤是關(guān)聯(lián)的,如果你發(fā)現(xiàn)少了一個</p>標(biāo)簽并修正了它,很可能接下來的24個錯誤都沒有了。簡言之,看起來校驗結(jié)果很糟糕,但往往并不是。
現(xiàn)在,你已經(jīng)通過了校驗,你的代碼也都符合規(guī)范。此時,你堅持了一個嚴格的指導(dǎo)方針,但是對為什么首先要這樣做還缺乏全面的了解。
第三節(jié)
下一步是采用良好格式(well-formed)的標(biāo)識重構(gòu)你已經(jīng)建立的文檔,剝離那些被越來越多新近的DOCTYPE列為“不贊成”使用的表現(xiàn)層的屬性,將它們放在一個單獨的文件中。這就是倍受爭議的"表現(xiàn)與結(jié)構(gòu)相分離",這也是為什么CSS受到人們重視的原因。
這樣比方:你的文本是內(nèi)容。內(nèi)容是完整的,但是沒有任何內(nèi)容結(jié)構(gòu)的提示(比如:空格、節(jié)、標(biāo)題、列表等),你得到的只是一個雜亂的文本,完全不好用。結(jié)構(gòu)層是額外的,在文檔中加個別的元素以傳達額外的結(jié)構(gòu)信息,來打破雜亂的文本,使之更有邏輯性、組織性。但是那些元素并不能控制文本的默認外表。例如,你常常發(fā)現(xiàn)第一頁的標(biāo)題比正文字體大,這并不是結(jié)構(gòu)的作用。
是"表現(xiàn)層"出現(xiàn)的時候了。表現(xiàn)是格式化的提示,它告訴第一頁的標(biāo)題是紅色的,斜體的,字體尺寸是正文字體的150%。表現(xiàn)層是文檔結(jié)構(gòu)層以上額外的層。CSS就屬于表現(xiàn)層,它可以通過文檔上簡單的標(biāo)記,將文檔轉(zhuǎn)換成令人驚異的形式--可以訪問CSS Zen Garden 看實例。
那么,什么是從結(jié)構(gòu)中分離表現(xiàn)最好的方法?我們拿一段傳統(tǒng)代碼來說明,其中包含用于提供表現(xiàn)的 HTML元素或?qū)傩。是砍掉那些bgcolors和<center>標(biāo)簽的時候了,我們來一個隨堂測試:
在下面這段演示代碼中,哪些用于表現(xiàn)的屬性和標(biāo)簽應(yīng)該被消除?
<center><h1><font face="Verdana">This is my first web site.</font></h1></center> <table border="0" cellpadding="0" cellspacing="0"> <body bgcolor="#ffffff" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0"> <td bgcolor="#ffffff" valign="top" align="center"><p>They're coming to take me away...</p></td> 準(zhǔn)備好你的答案了嗎?好,正確的結(jié)果列在下面,這是干凈的沒有表現(xiàn)痕跡的結(jié)構(gòu)化的代碼:
<h1>This is my first web site.</h1> <table> <body> <td><p>They're coming to take me away...</p></td> 就這樣?就是這樣。
雖然這段代碼不明確符合任何一種規(guī)范,這樣的分離,更大的意義在于使用了正確的元素。使用表格布局則是次要問題,在上面的例子中,使用表格方法不正確,從長遠、謹慎的角度考慮應(yīng)該移去<table>和<td>元素。雖然表格不被贊成使用,但表格依然非常有用,它們可以用在適當(dāng)?shù)牡胤?-表格排列的數(shù)據(jù)上。
好,我們已經(jīng)將格式從我們的頁面剝離,萬歲!現(xiàn)在還做什么呢?那只剩下一些丑陋的元素,Times-New-Roman字體的文本和線條。一點都不有趣,哪里是我們許諾的生動漂亮的頁面?
回頭看Zen Garden的例子,看見可愛的設(shè)計了嗎?看起來它們是多么不同?關(guān)鍵是:在那些漂亮的設(shè)計下面是相同的XHTML,就和你剛才未格式化的文檔一樣乏味。不對嗎?
事實上,乏味和丑陋卻有一個好的基礎(chǔ),你可能已經(jīng)注意到這個沒有格式化的HTML看起來就象1994年的web一樣糟糕。除了少數(shù)例外,這些元素和web本身一樣老,<h2>自從Mosaic瀏覽器出現(xiàn)那天就有了。
好處當(dāng)然不僅限于此,幾乎不用考慮易用性(滿足那些特殊需求),內(nèi)建搜索引擎優(yōu)化,帶寬的成本下降,等等等等。Jeffrey Veen已經(jīng)在去年寫了"web標(biāo)準(zhǔn)的商業(yè)價值",Roger Johansson在他最近的"使用web標(biāo)準(zhǔn)開發(fā)"中也解釋了基于標(biāo)準(zhǔn)的設(shè)計的技術(shù)和好處。
CSS已經(jīng)被今天所有主流瀏覽器很好的支持,有數(shù)不盡的資源幫助學(xué)習(xí)CSS的語法、基于CSS的布局以及高級技巧。我推薦幾個比較好的:westCiv提供一個正在進行的免費的CSS課程,將幫助你入門和快速掌握。Andrew Fernandez已經(jīng)建立了一個巨大的CSS資源列表,不論你是否新手都將對你有幫助。Eric Meyer已經(jīng)寫了一捆書,你可以放在案頭隨時查閱。這些書包括以案例為基礎(chǔ)的《Eric Meyer on CSS》《More Eric Meyer on CSS》。O’Reilly出版社出版的CSS參考書:《CSS權(quán)威指南》已經(jīng)發(fā)行第2版,你最好也放在桌上。同樣還有Molly Holzschlag的《The Designer’s Edge》以及Chris Schmitt的《Designing CSS Web Pages》。
深入應(yīng)用CSS的細節(jié)和構(gòu)建布局將花費太多時間。我就不多說了。以上就是我能給那些開始注意web標(biāo)準(zhǔn)的設(shè)計師的建議。通讀并分享您的心得,讓我們作為一個團體一起成長,我們中有許多人在積極推動web標(biāo)準(zhǔn)發(fā)展,我們有一個全球的網(wǎng)絡(luò),充分利用它吧。
出處:藍色理想
責(zé)任編輯:donger
|