王者歸來
什么是W3C
W3C(World Wide Web Consortium,http://www.w3.org/)創建于1994年,研究Web規范和指導方向,致力于推動Web發展,保證各種Web技術能很好地協同工作。大約500名會員組織加入這個團體,它的主任Tim Berners-Lee(http://www.w3.org/People/Berners-Lee/)在1989年發明了Web。W3C推行的主要規范有HTML,CSS,XML,XHTML和DOM(Document Object Model)。
多年以來,W3C把那些沒有被部分會員公司(如Netscape和Microsoft)嚴格執行的規范定義為“推薦”(Recommendations)。自1998年開始,“Web標準組織”(www.webstandards.org)將W3C的“推薦”重新定義為“Web標準”,這是一種商業手法,目的是讓制造商重視并重新定位規范,在新的瀏覽器和網絡設備中完全地支持那些規范。
其他的標準組織包括European Computer Manufactures Association(ECMA)將ECMAScript定義為“標準JavaScript”。
什么是“Web標準組織”(Web Standards Project)
創立于1998年,Web標準組織幫助終止瀏覽器戰爭,說服了Netscape、Microsoft和其他瀏覽器開發商正確地,完全地支持標準,減少因為開發的復雜性而增加的成本,保證對所有瀏覽器簡單有效的訪問。除了瀏覽器制造商,該團體還與開發工具制造商(如Macromedia)、網站所有者和開發合作者。Web標準組織是一個聯合組織,他的活動是完全自愿和非盈利的。
往事怎堪回首
1997年下半年,Netscape和Microsoft都推出了4.0瀏覽器,每個都吹噓有強大的“動態HTML”(DHTML)能力。你可能已經猜到,它們完全互相不兼容,而且和它們自己早前的版本也互相不兼容(在Netscape4中工作的不能在Netscape3中工作),更不用說那些不知名的瀏覽器了。它們從順從地支持HTML等基礎規范,轉變為創造它們自己的語言和屬性。
既有針對Netscape4的DHTML,又有不兼容的、更適合在Windows系統下工作的,針對Internet Explorer 4的DHTML。但是沒有針對Netscape 3和IE 3的非DHTML的腳本語言,針對其他不知名的瀏覽器和更早期的瀏覽器或許有附加的代碼,或許根本沒有。簡而言之,甚至最簡單的網頁也需要比意大利面更纏繞的代碼。
Netscape4忽略作用在
元素上的CSS規則,在頁面的每一個結構元素中隨意增加一些空格,而IE4則能正確讀取 標簽的CSS,但是對齊很糟糕,那么哪一種CSS寫法是安全的呢?一些開發者選擇根本不寫CSS;另外一些開發者則針對IE寫一個樣式表,針對Netscape4再寫一個樣式表。為彌補跨平臺字體和UI的細節差別問題,開發者或許還要定義不同的樣式。這樣做還沒有考慮瀏覽者用的是Windows還是Mac系統(對于那些UNIX或者Linux用戶就更糟糕了)。
因為早先的Netscape Navigator和Microsoft Internet Explorer的第4代、第5代瀏覽器產品支持非標準的標記和特定瀏覽器代碼,老式的非標準的站點能工作在昨天主流的瀏覽器中。為了自己瀏覽器的市場份額,他們居然在拙劣的戰爭中鼓勵私有的標記和腳本,例如MSIE私有的ActiveX和基于document.all的JScript,Netscape的私有的基于document.layers的JavaScript。
不嚴格的、甚至荒謬的是,傳統的主流瀏覽器吞噬所有斷掉的標記和JavaScript源文件中的壞鏈接,一點都不停頓。在大多情況下,站點顯示似乎都正確。因此設計師逐漸在工作中養成不嚴格的習慣,開發者也養成大量他們未察覺的壞習慣。在同一時候,這種工作方法已經使中間件和服務器端開發者相信像XHTML、CSS和JavaScript這些技術也是粗糙的、卑劣的。這就不奇怪那些熟練的代碼者為什么總是看不起前臺的設計者。
復雜的代碼、層層嵌套的表格、標簽,以及其他冗余代碼使簡單的網站需要2到3倍的帶寬……
Web標準
在4.0瀏覽器推出市場不久后成立的Web標準組織,評估當時Web開發方法,每個功能都需要寫四個或者更多版本,因此設計和開發任何網站上將會至少增加25%的成本。
開發者可能花費巨大的時間和資源來建造一個“無線”的版本,卻發現他們用的無線標記語言已經過時,或者他們的無線版本在新的流行設備中無法訪問,一些網站重新建立一個新版本,另外一些只能發布令人為難的消息,許諾在“不遠的將來”支持新設備。
一些開發者對于這些不屑一顧,然而因特網泡沫的破滅,網站預算隨之減小或者凍結,一夜之間,幾乎沒有人能夠負擔得起多版本網站的費用。此時,讓我們重新審視以標準為基礎的設計和開發。無規矩,無以成方圓!
Web標準把網頁分成三個獨立組成的部分來解決問題:結構(Structure)、表現(Presentation)、行為(Behavior)。結構包括XHTML(http://www.w3.org/TR/xhtml1)和XML(http://www.w3.org/TR/2000/REC-Xml-20001006);表現指CSS(CSS1——http://www.w3.org/TR/REC-CSS1;CSS2——http://www.w3.org/TR/REC-CSS2;CSS3——http://www.w3.org/TR/REC-CSS3);行為包括W3C DOM(http://www.w3.org/DOM/DOMTR#dom1)和ECMAScript(http://www.ecma.ch/ecma1/STAND/ECMA-262.HTM)。
經過W3C會員、專家的和其他標準組織的錘煉、推敲,這些技術被精心設計,將最大益處提供給數量眾多的Web用戶。這些技術的集成應用,已經成為合理的、易用的、穩定的和高價值的網站標志。CSS,XHTML,ECMAScript(JavaScript的標準版本)和W3C DOM等技術已經被當前瀏覽器支持(包括Netscape、Microsoft、Opera和其他廠家),并可以設計和做到如下內容。
- 在圖形桌面瀏覽器上達到更精確的控制、定位和排版,允許用戶使用適合他們的表達方式進行編輯。
- 可以開發工作在多瀏覽器和平臺的復雜交互行為。
- 遵守可訪問性原則和指南,而不需要犧牲美觀、性能或者精巧性。
- 以前重新設計網站需要幾天或者幾星期,現在只需要幾小時,從而減少成本和避免工作煩惱。
- 支持多種瀏覽器,從而不需要爭論和考慮多版本的成本,很少或根本就不需要代碼分支。
- 支持非傳統的設備,從無線設備到孩子們想象到的、可以上網的智能手機,以及盲人們閱讀器、屏幕閱讀器等殘疾人士使用的設備,都不需要再爭論開發特殊版本的費用。
- 為任何網頁提交適合打印的版本,不需要建立通常的“專門打印頁”或者依賴昂貴的私人出版系統來建立類似的版本。
- 通過把樣式從結構、行為中分離,以及嚴格的文檔結構,易于在高級發布流程中重新設計Web文檔。
- 從老的Web語言HTML轉換到更強大的以XML為基礎的置標語言。
- 可以在當前符合標準的瀏覽器和平臺上確保正確地工作,也可以在老瀏覽器中工作。
- 保證這樣設計的站點將能繼續工作在將來的瀏覽器和設備商,包括那些還沒有發明和仍在想象中的設備,這是向后兼容的許諾。
標準兼容的瀏覽器是那些能夠理解和支持XHTML,CSS,ECMAScript,DOM的產品,例如:Mozilla,Netscape6+,MSIE5+/Mac,MSIE6+/Win和Opera7+。(我們將在下一篇文章“天下大事,分久必合”中詳細介紹。)
標準回歸
有一些私有的方法和捷徑比W3C的規范更容易使用。舉例來說,IE獨有的使用Microsoft捷徑的腳本比W3C標準DOM的腳本更容易使用。而從商業角度看,適合所有瀏覽器的代碼比只適應一個瀏覽器的代碼更理性,DOM就是這樣的解決方法。
當發明Web的物理學家Tim Berners-Lee構思時,HTML是一個結構化的置標語言(http://www.w3.org/MarkUp/html-spec/),源自SGML。現在很多人都忽略了HTML是設計用來結構化數據的,而非用來表現形式。(CSS才是用來表現形式和外觀的)
現在,各主流瀏覽器統一支持,包括ESPN.com, DevEdge在內的各大網站紛紛重構,在經歷了那么多曲折、碰壁后,是時候回歸標準了!
刪除<font>標簽,用有意義的<h>、<p>標簽替換非結構性的標記……
開始行動吧!