一:了解web標準
1.什么是web標準?
首先要明確一個(gè)概念。我們本書(shū)講的web標準,不是指XML,而是指為了實(shí)現大量HTML信息向XML標準的過(guò)渡,W3C和ECMA制定的一系列的技術(shù)規范,目前主要包括XHTML1.0、CSS2.0、DOM1.0和ECMA JavaScrit。web標準不僅僅是一個(gè)規范,而是一系列規范的總稱(chēng)。
按這些規范制作的網(wǎng)頁(yè),符合XML格式規范,內容與表現相分離,將使你的頁(yè)面數據在以后可以被分享、交換和重用。
下面,讓我們一起了解一些重要的基礎知識。如果你已經(jīng)掌握,可以跳過(guò)直接閱讀第二節
。2. 什么是w3c?
W3C是“World Wide Web Consortium”的縮寫(xiě),中文稱(chēng)萬(wàn)維網(wǎng)組織。是一個(gè)專(zhuān)注于“領(lǐng)導和發(fā)展web技術(shù)”的國際工業(yè)行業(yè)協(xié)會(huì )。它由萬(wàn)維網(wǎng)發(fā)明者Time Berners-Lee領(lǐng)導,成立與1994年。W3C已經(jīng)有超過(guò)500家的會(huì )員--包括微軟、美國在線(xiàn)(Netscape的母公司)、蘋(píng)果電腦、Adobe、Macromedia、SUN 以及各類(lèi)主流硬件、軟件制造商和電信公司。學(xué)會(huì )主要研究由三家學(xué)術(shù)機構主理--美國麻省理工學(xué)院(MIT)、法國的歐洲信息與數學(xué)研究論壇(ERCIM)、日本的應慶大學(xué)(KEIO)。
W3C主要工作是研究和制定開(kāi)放的規范(事實(shí)上的標準),以便提高web相關(guān)產(chǎn)品的互用性。W3C的推薦規范的制定都是由來(lái)自于會(huì )員和特別邀請的專(zhuān)家組成的工作組完成。工作組的草案(Drafts)在通過(guò)多數相關(guān)公司和組織同意后提交給W3C理事會(huì )討論,正式批準后才成為“推薦規范(Recommendations)”發(fā)布。更多的信息您可以訪(fǎng)問(wèn)W3C的網(wǎng)站:www.w3.org
3.W3C發(fā)布的標準
3.1 HTML4.0
HyperText Markup Language(HTML,超文本標識語(yǔ)言)廣泛用于現在的網(wǎng)頁(yè),HTML目的是為文檔增加結構信息,例如表示標題,
表示段落;瀏覽器可以解析這些文檔的結構,并用相應的表現形式表現出來(lái)。例如:瀏覽器會(huì )將...之間的內容用粗體顯示。
設計師也可以通過(guò)CSS(Cascading Style Sheets)來(lái)定義某種結構以什么形式表現出來(lái)。
3.2 XML1.0
XML是Extensible Markup Language(可擴展標識語(yǔ)言)的簡(jiǎn)寫(xiě)。XML類(lèi)似HTML也是標識語(yǔ)言,不同的地方是:HTML有固定的標簽,而XML允許你自己定義自己的標簽,甚至允許你通過(guò)XML namespaces為一個(gè)文檔定義多套設定?匆粋(gè)XML例子:
<addressbook>
<entry>
<name>AJIE</name><email>ajie33@hotmail.com</email>
</entry>
<entry><name>ALLAN</name><email>neo_n@21cn.com</email>
</entry>
<entry><name>YAHOO</name><email>tingpeng@msn.com</email>
</entry>
</addressbook>
一些XML的應用,例如XHTML和MathML,已經(jīng)成為W3C推薦規范。你同樣可以通過(guò)樣式規范(CSS和XSL),來(lái)定義XML標簽的表現形式。XML文檔目前還不能直接用瀏覽器顯示,頁(yè)面展現依然采用HTML或者XHTML,XML現在大多用于服務(wù)器與服務(wù)器(系統與系統)之間的數據交換。
3.3 CSS2.0
CSS是Cascading Style Sheets層疊樣式表的縮寫(xiě)。通過(guò)CSS可以控制HTML或者XML標簽的表現形式。W3C推薦使用CSS布局方法,使得web更加簡(jiǎn)單,結構更加清晰。
3.4 XHTML1.0
XHTML實(shí)際上就是將HTML根據XML規范重新定義一遍。它的標簽與HTML4.0一致,而格式嚴格遵循XML規范。因此,雖然XHTML與HTML在瀏覽器中一樣顯示,但如果你要轉換成PDF,那么XHTML會(huì )容易的多。
XHTML有三種DTD定義:嚴格的(strict),過(guò)渡的(Transitional),框架的(Frameset)。 DTD是Document Type Definition文檔類(lèi)型定義的縮寫(xiě)。它寫(xiě)在XHTML文件的最開(kāi)始,告訴瀏覽器這個(gè)文檔符合什么規范,用什么規范來(lái)解析。
3.5 DOM1.0
DOM是Document Object Model文檔對象模型的縮寫(xiě)。DOM給了腳本語(yǔ)言(類(lèi)似ECMAScript)無(wú)限發(fā)揮的能力。它使腳本語(yǔ)言很容易訪(fǎng)問(wèn)到整個(gè)文檔的結構、內容和表現。
4 什么是ECMA?
是“European Computer Manufactures Association”的縮寫(xiě),中文稱(chēng)歐洲計算機制造聯(lián)合會(huì )。是1961年成立的旨在建立統一的電腦操作格式標準--包括程序語(yǔ)言和輸入輸出的組織。
ECMA位于日內瓦,和ISO(國際標準組織)以及IEC(國際電工標準化機構)總部相鄰,主要任務(wù)是研究信息和通訊技術(shù)方面的標準并發(fā)布有關(guān)技術(shù)報告。ECMA并不是官方機構,而是由主流廠(chǎng)商組成的,他們經(jīng)常與其他國際組織進(jìn)行合作。
4.1 ECMA發(fā)布的標準 ECMAscript
ECMAscript是基于Netscape javaScript的一種標準腳本語(yǔ)言。它也是一種基于對象的語(yǔ)言,通過(guò)DOM可以操作網(wǎng)頁(yè)上的任何對象?梢栽黾、刪除、移動(dòng)或者改變對象。使得網(wǎng)頁(yè)的交互性大大提高。
上述標準是我們目前從HTML向XML過(guò)渡時(shí)期用到的主要標準,也是本書(shū)主要討論的范疇。
5.web標準的優(yōu)勢
5.1 易用性
用web標準制作的頁(yè)面,對搜索引擎更加“透明”,因為良好清晰的結構使得搜索引擎能夠方便的判斷與評估信息,從而建立更精確的索引。按web標準制作的頁(yè)面也可以在更老版本的瀏覽器中正常顯示基本結構,即使CSS/XSL樣式無(wú)法解析,它也能顯示出完整的信息和結構。
符合web標準的頁(yè)面也很容易被轉換成其他格式文檔,例如數據庫或者word格式,也容易被移植到新的系統--硬件或者軟件系統,比如網(wǎng)絡(luò )電視、PDA等等。這是XML天生具有的優(yōu)勢。
符合web標準的頁(yè)面也具有天生的“易用性(accessibility)”,不僅僅是普通瀏覽器可以閱讀,那些有殘疾的人們也可以通過(guò)盲人瀏覽器、聲音閱讀器正常使用。
5.2 向后兼容性
使用web標準建立的頁(yè)面,將在未來(lái)的新瀏覽器或者新網(wǎng)絡(luò )設備中很好的工作。我們只要修改CSS或者XSL定制相應的表現形式就可以了。
二:web標準的思考與爭論
通過(guò)上文的介紹,我們已經(jīng)初步了解為什么W3C要建立XML標準,為什么各大廠(chǎng)商都愿意支持XML。也了解到為了向XML標準過(guò)渡,我們目前階段需要學(xué)習和掌握的web標準有那些,接下來(lái)就是具體應用了。但我們發(fā)現應用也并不如想像中那樣順利,依然有一堆的困難擺在我們面前:
- 有99%采用HTML4.0或者更老規范建立的網(wǎng)頁(yè)需要轉換到XHTML;
- 每天依然有大量的新的頁(yè)面采用不符合web標準的技術(shù)在發(fā)布;
- 缺乏易用的、強大的支持web標準的頁(yè)面開(kāi)發(fā)軟件;
- 主流瀏覽器IE對web標準的支持不完善;
- 大批的設計師需要了解web標準,轉變觀(guān)念;
其中“轉變觀(guān)念”是最重要、也是最難的。許多設計師還不理解web標準,依然在觀(guān)望甚至反對。這里我們來(lái)分析web標準推廣過(guò)程中遇到的典型問(wèn)題與爭論:
(一)關(guān)于web標準
1.web標準并不是“標準”,我為什么要遵守?
的確,web標準并不是標準,它只是W3C制定的推薦規范,W3C并沒(méi)有強制要求和監督業(yè)界去執行。web標準組織(webstandards.org)為了便于這些規范的推廣,才把它們統稱(chēng)為“web標準”。雖然W3C制定的只是“推薦規范”,但它已經(jīng)是事實(shí)上的標準,世界前500家大IT企業(yè)會(huì )員都認可的規范,你沒(méi)有理由懷疑它的廣泛性和可行性。微軟也是W3C的主要會(huì )員,它自己通過(guò)的規范一定會(huì )支持,但出于商業(yè)競爭的考慮,微軟通常都會(huì )做一些細節調整來(lái)綁定用戶(hù),但這并不影響W3C規范的方向性和權威性。2.DIV+CSS就是web標準嗎?
DIV+CSS只是具體的實(shí)現技術(shù)手段,并不能涵蓋web標準。web標準不僅僅是HTML向XHTML的轉換,更重要的是信息結構清晰、內容與表現相分離,而DIV+CSS技術(shù)能較好的實(shí)現這種思想。因此,我們看到的多數符合標準的頁(yè)面都是采用DIV+CSS制作。(二).關(guān)于web標準的好處
1.科技在進(jìn)步,網(wǎng)絡(luò )帶寬越來(lái)越大,速度越來(lái)也快,節省那點(diǎn)字節有意義嗎?
web標準的好處之一是:用web標準制作的頁(yè)面代碼量小,可以節省帶寬。這只是web標準附帶的好處,因為DIV的結構本身就比TABLE簡(jiǎn)單,TABLE布局的層層嵌套造成代碼臃腫,文件尺寸膨脹。通常情況下,相同表現的頁(yè)面用DIV+CSS比用TABLE布局的節省2/3的代碼。這是web標準天生的好處。 至于節省帶寬的意義并不主要針對普通用戶(hù),而主要針對網(wǎng)站經(jīng)營(yíng)者,特別是中大型網(wǎng)站,類(lèi)似新浪、網(wǎng)易這樣的站點(diǎn)。一個(gè)新聞首頁(yè)從500K縮小到170k,假設一天的pageview是3000萬(wàn)(保守數字),那么節省的服務(wù)器流量就是330k*30000000=9440G,這個(gè)成本的節約是可觀(guān)的。2.我需要考慮殘障人士(盲人和弱視)嗎?
為殘障人士提供網(wǎng)絡(luò )瀏覽方便是美國及歐洲一些國家的法律規定,由于web標準頁(yè)面的清晰結構、語(yǔ)義完整,一些相關(guān)設備能很容易的正確提取信息給殘障人士。因此,方便盲人閱讀信息也成為web標準的天生好處之一。至于有人說(shuō)中國目前還有很多人為解決溫飽發(fā)愁,哪有時(shí)間考慮殘障人士。這是社會(huì )文明和社會(huì )道德問(wèn)題,不在本書(shū)討論范疇。但如果你頁(yè)面按web標準制作了,就能達到這個(gè)效果,何樂(lè )而不為呢?(三).關(guān)于布局
1.web標準就不能用表格了嗎?
首先要澄清一個(gè)概念:web標準并不是不允許用TABLE標簽,TABLE也是XHTML1.0中的標準標簽。我們只是提倡用DIV+CSS布局來(lái)替代傳統的table布局。原因是:原來(lái)的TABLE布局將表現和內容混雜在一起,結構不清晰、內容不完整,不利于內容的重用。而且從語(yǔ)義上講,W3C制定TABLE標簽時(shí)候只是用它來(lái)做表格結構定義的,文檔中如果有表格,那么就應該用TABLE。而排版、定位這些表現的東西應該由CSS來(lái)控制。2.我用table布局改版也很方便,你用CSS不一定就比我效率高。
個(gè)別情況或者個(gè)別項目,有可能象你說(shuō)的,用table布局改版也很快。但這不是長(cháng)遠之計,我們需要透過(guò)現象看本質(zhì),web標準將內容與表現相剝離,所有樣式、風(fēng)格、布局等等表現的東西獨立出來(lái),由CSS或者XSLT來(lái)單獨控制,這樣的剝離后,改版才是真正的方便。而且“改版”并不僅僅是瀏覽器上的改版,同樣的頁(yè)面如果我需要發(fā)布到手機上,符合web標準的頁(yè)面就只需要修改樣式文件,而table布局的則需要完全重做,未來(lái)如果還需要再發(fā)布到網(wǎng)絡(luò )電視上或者其它新設備上呢?CSS的效率一定比table高。3.用web標準能制作出漂亮的頁(yè)面嗎?
由于一開(kāi)始研究和推廣web標準的人士做得頁(yè)面都比較“樸素”,因此引起大家的誤解,以為web標準的頁(yè)面就是簡(jiǎn)潔、輕圖形、輕視覺(jué)效果的。實(shí)際上,用TABLE布局能夠實(shí)現的頁(yè)面效果,用CSS也基本上能實(shí)現。這個(gè)問(wèn)題不需要多解釋?zhuān)纯磭鴥韧庑陆⒌膚eb標準站點(diǎn)就清楚了。例如:www.macromedia.com,www.mp3.com(四).關(guān)于瀏覽器兼容
1.我不需要關(guān)心web標準,IE占有99%的市場(chǎng),我做的頁(yè)面只要IE能看就可以了。
“以用戶(hù)為核心”通常都是反對web標準者的檔箭牌,實(shí)際上這是虛偽的“以用戶(hù)為核心”。你不能保證IE永遠是壟斷瀏覽器市場(chǎng),你也不能保證IE不做任何改變(事實(shí)上,微軟的IE7已經(jīng)開(kāi)始改善對web標準的支持)。堅持用html+table布局制作的頁(yè)面將是“死”的信息,不方便搜索,無(wú)法重用與共享,從長(cháng)遠來(lái)講,這才是對用戶(hù)最大的傷害。2.為什么web標準的頁(yè)面兼容性并不好?
我們說(shuō)web標準的優(yōu)勢是兼容性好,這個(gè)兼容是指向后兼容,向新瀏覽器、新設備兼容。對已有的瀏覽器來(lái)說(shuō),因為它們對web標準的支持程度不一樣,因此會(huì )出現不同瀏覽器下頁(yè)面變形的情況。我們必須采用一些"hack"技巧來(lái)實(shí)現不同瀏覽器的兼容。這是無(wú)奈、也是不可避免的,是web技術(shù)發(fā)展必然要經(jīng)歷的一個(gè)過(guò)程,是我們向XML過(guò)渡必須克服的一個(gè)困難。(五).其它
1.沒(méi)有好用的開(kāi)發(fā)工具,難道要我手寫(xiě)代碼?
是的。我們建議你手寫(xiě)代碼,可以促進(jìn)你更加深刻理解web標準。事實(shí)上,很多開(kāi)發(fā)軟件已經(jīng)開(kāi)始支持web標準。你可以看看最新版的Dreamweaver 8,還有Adobe的Golive,微軟的Visual Studio.NET 2005,這些工具都已經(jīng)很好的支持web標準頁(yè)面的開(kāi)發(fā)。當新技術(shù)出現時(shí),我們的態(tài)度應該是去了解、實(shí)踐和評估,而不是盲目反對或者坐等其成,那樣你永遠都是落后者。2.老板不懂,客戶(hù)也沒(méi)有要求,我為什么要用web標準?
在自己或者開(kāi)發(fā)團隊都不熟悉web標準技術(shù)的情況下,新項目采用web標準的確有風(fēng)險(技術(shù)和成本風(fēng)險),可以評估后再決定是否采用web標準。但是如果有能力采用標準依然蒙混老板和客戶(hù),這就屬于職業(yè)道德和敬業(yè)精神的問(wèn)題。三:未來(lái)與方向
我想你和我一樣,都關(guān)心WEB的未來(lái)會(huì )是怎么樣的,下一輪的新技術(shù)熱點(diǎn)在什么方向。其實(shí),要回答這個(gè)問(wèn)題,沒(méi)有誰(shuí)比W3C更有權威了。只要看看W3C在做什么,正在研究什么規范就知道WEB的走向和趨勢了。
W3C明確地告訴我們:XML是未來(lái)的趨勢毋庸置疑,開(kāi)放和共享是互聯(lián)網(wǎng)的精神和根本動(dòng)力。
蒂姆.貝納斯-李(Tim Berners-Lee) ,W3C領(lǐng)導人,萬(wàn)維網(wǎng)之父,說(shuō)到:XML提供了信息交換的手段,但這僅僅只是開(kāi)始。我們的目標是web的語(yǔ)義化,即:使得web上的信息內容更加容易理解、更便于交換和共享,RDF和OWL語(yǔ)言將在這方面提供更強大的支持。
web技術(shù)即將迎接新一輪的變革和發(fā)展,如果你還在猶豫是不是需要學(xué)習web標準,那么你將失去這次機會(huì )。