首先不要急著開始!在做任何事情之前做好2個心理準備,這對你的學習過程是最重要的事情:
學習需要時間,要循序漸進;
前進的過程中會遇到挫折。
但是你並不孤獨,我們許多人正在投入學習和使用web標準的行列。有一個不斷擴大的團體來幫助你更容易學習,老手在學習技術和技巧的過程中遇到許多困難,幸運的後來者(包括我自己)將從他們的汗水與淚水中獲益。
當最後,你能熟練使用基於web標準的設計方法(使那些傳統的基於表格的方法顯得黯然無光)時,回頭再看,你將驚奇用CSS佈局頁面並不是那麼難。哦,當然,如果主流瀏覽器能對CSS2規範中的一些操作支援更好,實際上使用時可能會更加容易。
恩,我好像有點離題了。
那麼,讓我們立刻開始了解實際有用的信息。首先,去買一本《Designing With Web Standards》(註1),不用多想,立刻去做。已經有了?好,現在就閱讀它,不要讓它積滿灰塵。我想說的每一點在書裡都有詳細的解釋。書分為平均的兩部分,宣言(為什麼你應該怎麼做)和教程(你怎麼做)。這對你是有用的。
現在,第一件事就是建立一個XHTML的思想體系概念,不管你選擇HTML4.01或XHTML 1.0 Strict(有很多理由選擇其中的任一種,現在你可以先忽略這些,以後不能忽略,除非你準備做讓人麻木的苦差事。告訴瀏覽器你的文件用什麼標記語言,這樣做可以防止出現不必要的表現錯誤,否則糟糕的頁面顯示結果會使你瘋狂。打個比方:我想飛往芝加哥,就必須告訴旅行社我要去哪裡,否則可能無目的的亂飛到維也納。要顯示的是HTML或XHTML,你必須先告訴瀏覽器,設定DOCTYPE可以確保我到達"目的地"。
下一個目標:嚴謹格式的識別。這非常容易掌握。將所有的屬性加上引號(例如:<a href="link">);正確的巢狀標識;關閉所有開啟的標識(例如:<input type="text" />)。每一個標識或元素都需要關閉。
快速註解:不知道什麼時候,標識(tags)變成了元素(elements),它們是相同的含意,不同的說法。不管你怎麼稱呼它們,現在正確的稱呼似乎應該是"元素",也許一開始就是這樣的,我不知道也沒有人告訴我。
無論如何,每一個元素都必須被正確的關閉。如果你使用HTML4.01,可以不考慮單獨元素象<br>,<hr>和<input>,如果你使用XHTML,單獨元素也必須關閉,就是在最後加一個斜杠,例如:<br>變成<br />。
接下來,是一個有點令人糊塗的、關於XHTML屬性的規則:所有的屬性都必須有一個值,如果沒有值,就用它本身。例如<input type="radio" checked="checked" />。在HTML4.01中checked是不需要值的,而XHTML中它是必須的。
最後,XHTML需要你用小寫寫所有的程式碼,HTML不區分大小寫,但XHTML區分,它遵循的是XML語法規則。
上面就是所有關於標識的變化!你已經都知道了!深呼吸、喝口啤酒,放鬆一下。因為那隻是第一步。
第二節
現在,我們開始學習撰寫正確的HTML/XHTMLL,並在W3組織的校驗器(validator)裡校驗它們。如果你寫得正確,你將看到一個藍底黃字的成功訊息。嘗試喜歡這種顏色/字體組合吧,它將是你最好的朋友。
為什麼校驗這麼重要?有什麼關係嗎?因為poorly-written(隨意的、不嚴謹的)標誌將帶來完全的不可預測性。頁面的"生死"完全依賴瀏覽器的錯誤處理方式,儘管大多數瀏覽器還能很好的支援poorly-written標識,但這是不正確的習慣。嗨,是什麼讓我們習慣非標準?首要原因是瀏覽器大戰,1995年微軟能夠從Netscape地盤競爭取得市場就是因為IE對網頁錯誤的處理方式和Netscape 一模一樣。
另一個觀點是:校驗幫助你發現錯誤的程式碼,確保你的頁面有更一致的表現。校驗程式碼是我調試佈局的第一件事,相信你也是。
ok,當你第一次校驗你的第一個站點,你很可能需要忍受一下反饋回來的七八十條不可思議的錯誤信息。不幸的,雖然校驗有幫助訊息,但並不完美,它只是由一些志工維護的。好消息是那些錯誤是關聯的,如果你發現少了一個</p>標籤並修正了它,很可能接下來的24個錯誤都沒有了。簡言之,看起來校驗結果很糟糕,但往往不是。
現在,你已經通過了校驗,你的程式碼也都符合規範。此時,你堅持了一個嚴格的指導方針,但是為什麼首先要這樣做還缺乏全面的了解。
第三節下一步是採用良好格式(well-formed)的標識重構你已經建立的文檔,剝離那些被越來越多新近的DOCTYPE列為“不贊成”使用的表現層的屬性,將它們放在一個單獨的文件中。這就是倍受爭議的"表現與結構相分離",這也是為什麼CSS受到人們重視的原因。
這樣比方:你的文字是內容。內容是完整的,但是沒有任何內容結構的提示(例如:空格、節、標題、列表等),你得到的只是一個雜亂的文本,完全不好用。結構層是額外的,在文件中加個別的元素以傳達額外的結構訊息,來打破雜亂的文本,使之更有邏輯性、組織性。但是那些元素並不能控製文字的預設外表。例如,你常常發現第一頁的標題比正文字體大,這並不是結構的作用。
是"表現層"出現的時候了。表現是格式化的提示,它告訴第一頁的標題是紅色的,斜體的,字體尺寸是正文字體的150%。表現層是文檔結構層以上額外的層。 CSS就屬於表現層,它可以透過文件上簡單的標記,將文件轉換成令人驚異的形式--可以存取CSS Zen Garden 看實例。
那麼,什麼是從結構中分離出表現最好的方法呢?我們拿一段傳統程式碼來說明,其中包含用於提供表現的HTML元素或屬性。是砍掉那些bgcolors和<center>標籤的時候了,我們來一個隨堂測試:
在下面這段示範程式碼中,哪些用於表現的屬性和標籤應該被消除?
<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>
準備好你的答案了嗎?好,正確的結果列在下面,這是乾淨的沒有表現痕跡的結構化的程式碼:
<h1>This is my first web site.</h1> <table> <body> <td><p>They're coming to take me away...</p></td>
就這樣?就是這樣。
雖然這段程式碼不明確符合任何一種規範,這樣的分離,更大的意義在於使用了正確的元素。使用表格佈局則是次要問題,在上面的例子中,使用表格方法不正確,從長遠、謹慎的角度考慮應該移去<table>和<td>元素。雖然表格不被贊成使用,但表格仍然非常有用,它們可以用在適當的地方--表格排列的數據上。
好,我們已經將格式從我們的頁面剝離,萬歲!現在還做什麼呢?那隻剩下一些醜陋的元素,Times-New-Roman字體的文字和線條。一點都不有趣,哪裡是我們許諾的生動漂亮的頁面?
回頭看Zen Garden的例子,看見可愛的設計了嗎?看起來它們是多麼不同?關鍵是:在那些漂亮的設計下面是相同的XHTML,就和你剛才未格式化的文件一樣乏味。不對嗎?
事實上,無聊和醜陋卻有一個好的基礎,你可能已經注意到這個沒有格式化的HTML看起來就像1994年的web一樣糟糕。除了少數例外,這些元素和web本身一樣老,<h2>自從Mosaic瀏覽器出現那天就有了。
好處當然不限於此,幾乎不用考慮易用性(滿足那些特殊需求),內建搜尋引擎優化,頻寬的成本下降,等等等等。 Jeffrey Veen已經在去年寫了"web標準的商業價值",Roger Johansson在他最近的"使用web標準開發"中也解釋了基於標準的設計的技術和好處。
CSS已經被今天所有主流瀏覽器很好的支持,有數不盡的資源幫助學習CSS的語法、基於CSS的佈局以及高級技巧。我推薦幾個比較好的:westCiv提供一個正在進行的免費的CSS課程,將幫助你入門和快速掌握。 Andrew Fernandez已經建立了一個巨大的CSS資源列表,無論你是否新手都將對你有幫助。 Eric Meyer已經寫了一捆書,你可以放在案頭隨時查閱。這些書籍包括以案例為基礎的《Eric Meyer on CSS》《More Eric Meyer on CSS》。 O'Reilly出版社出版的CSS參考書:《CSS權威指南》已經發行第2版,你最好也放在桌上。同樣還有Molly Holzschlag的《The Designer's Edge》以及Chris Schmitt的《Designing CSS Web Pages》。
深入應用CSS的細節和建造佈局將花費太多時間。我就不多說了。以上就是我能給那些開始注意web標準的設計師的建議。通讀並分享您的心得,讓我們作為一個團體一起成長,我們中有許多人在積極推動web標準發展,我們有一個全球的網絡,充分利用它吧。
註 1.《Designing With Web Standards》一書是Zeldman寫得web標準推廣書籍,中文版已經引入,2004年5月發行,書名為《網站重構--用web標準進行設計》