Win7之家( afsion.com.cn):HTML 簡(jiǎn)史
新聞來(lái)源:A List Apart
HTML 是 Web 統(tǒng)一語(yǔ)言,這些容納在尖括號(hào)里的簡(jiǎn)單標(biāo)簽,構(gòu)成了如今的 Web。1991 年,Tim Berners-Lee 編寫(xiě)了一份叫做 “HTML 標(biāo)簽”的文檔,里面包含了大約20個(gè)用來(lái)標(biāo)記網(wǎng)頁(yè)的 HTML 標(biāo)簽。他直接借用 SGML 的標(biāo)記格式,也就是后來(lái)我們看到的 HTML 標(biāo)記的格式。本文講述了 HTML 這門(mén) Web 標(biāo)記語(yǔ)言的發(fā)展簡(jiǎn)史。
從 IETF 到 W3C: HTML 4 之路
HTML 1 并不曾存在,HTML 的第一個(gè)官方版本就是由 IETF (互聯(lián)網(wǎng)工程任務(wù)組) 推出的 HTML 2.0。問(wèn)世之前,這個(gè)版本中的很多細(xì)則已經(jīng)被實(shí)現(xiàn),比如,1994年的 Mosaic 瀏覽器已經(jīng)實(shí)現(xiàn)了在文檔中嵌入圖片的方法,后來(lái) HTML 2.0 便吸納了 img 這個(gè)標(biāo)簽。
后來(lái),W3C 取代 IETF 的角色,成為 HTML 的標(biāo)準(zhǔn)組織,1990年代的后半頁(yè),HTML 的版本被頻繁修改,直到1999年的 HTML 4.01,至此,HTML 到達(dá)了它的第一個(gè)拐點(diǎn)。
XHTML 1: XML 風(fēng)格的 HTML
HTML 在 HTML 4.01 之后的第一個(gè)修訂版本就是 XHTML 1.0,其中 X 代表 “eXtensible” ,擴(kuò)展,當(dāng)然也有人將之解讀為 “eXtreme”,極端。XHTML 1.0 是基于 HTML 4.01 的,并沒(méi)有引入任何新標(biāo)簽或?qū)傩裕ㄒ坏膮^(qū)別是語(yǔ)法,HTML 對(duì)語(yǔ)法比較隨便,而 XHTML 則要求 XML 般的嚴(yán)格語(yǔ)法。
使用嚴(yán)格的語(yǔ)法規(guī)范并非壞事,要求開(kāi)發(fā)者使用單一的代碼風(fēng)格,比如,HTML 4.01 允許你使用大寫(xiě)或小寫(xiě)字母標(biāo)識(shí)標(biāo)記元素和屬性,XHTML 則只允許小寫(xiě)字母。XHTML 1.0 的推出剛好碰上了 CSS 的崛起,Web 開(kāi)發(fā)設(shè)計(jì)者們開(kāi)始意識(shí)到 Web 標(biāo)準(zhǔn)問(wèn)題,基于 XHTML 的嚴(yán)格語(yǔ)法規(guī)范被視為編寫(xiě) HTML 代碼的最佳實(shí)踐。
于是,W3C 推出 XHTML 1.1。
如果說(shuō) XHTML 1.0 是 XML 風(fēng)格的 HTML,XHTML 1.1 則是貨真價(jià)實(shí)的 XML。這意味著 XHTML 1.1 無(wú)法使用 text/html mime-type 直接輸出,然而,如果 Web 開(kāi)發(fā)者使用 XML mime-type,則當(dāng)時(shí)的主流瀏覽器,IE 則壓根不支持?瓷先ィ琖3C 似乎正在與當(dāng)時(shí)的 Web 脫節(jié)。
出力不討好的 XHTML 2
對(duì) W3C 而言,到了 HTML 4 已經(jīng)是功德圓滿(mǎn),他們的下一步工作是 XHTML 2,希望將 Web 帶向 XML 的光明未來(lái)。雖然 XHTML 2 聽(tīng)上去和 XHTML 1 類(lèi)似,它們卻有很多差別,XHTML 2 不向前兼容,甚至不兼容之前的 HTML。它是一種全新的語(yǔ)言,赤條條來(lái)去無(wú)牽掛。這實(shí)在是一場(chǎng)災(zāi)難。
WHATWG:與 W3C 決裂
W3C 閉門(mén)造車(chē)的作風(fēng)引起了一些人的不滿(mǎn),來(lái)自 Opera, Apple, 以及 Mozilla 的代表開(kāi)始表達(dá)反對(duì)聲音。2004年,Opera 的 Ian Hickson 提議在 HTML 基礎(chǔ)上進(jìn)行擴(kuò)展以適應(yīng)新的 Web 應(yīng)用,該提議遭到 W3C 的拒絕。于是,他們自發(fā)組織成立了超文本應(yīng)用技術(shù)工作組,就是 WHATWG。
從 Web Apps 1.0 到 HTML5
從一開(kāi)始,WHATWG 就和 W3C 走不同的路線(xiàn),W3C 對(duì)問(wèn)題的討論是集體投票,而 WHATWG 則由主筆 Ian Hickson 定度。表面上看,W3C 更民主,然而事實(shí)上,各種內(nèi)部紛爭(zhēng)會(huì)使一些決議限于泥潭,在 WHATWG,事情的進(jìn)展會(huì)更容易,不過(guò),主筆的權(quán)力并非無(wú)限大,他們的委員會(huì)可以對(duì)那些過(guò)于偏執(zhí)的主筆進(jìn)行彈劾。
一開(kāi)始,WHATWG 的主要工作包括兩部分,Web Forms 2.0 和 Web Apps 1.0,它們都是 HTML 的擴(kuò)展,后來(lái),他們合并到一起成為現(xiàn)在的 HTML5 規(guī)范。
言歸于好
在 WHATWG 致力于 HTML5 的同時(shí),W3C 繼續(xù)他們的 XHTML 2.0,然而,他們慢慢地陷入困境。
2006年10月,Web 之父 Tim Berners-Lee 發(fā)表了一篇博客文章,表示,從 HTML 走向 XML 的路是行不通的,幾個(gè)月后,W3C 組建了一個(gè)新的 HTML 工作組,他們非常明智地選擇了 WHATWG 的成果作為基礎(chǔ)。這一轉(zhuǎn)變帶來(lái)一些困惑,W3C 同時(shí)進(jìn)行這兩套規(guī)范,XHTML 2 和 HTML 5 (注意,W3C 的 HTTML 5 在 5 之前有個(gè)空格,而 WHATWG 的 HTML5 則沒(méi)有空格),而 WHATWG 也在進(jìn)行著同樣的工作。
XHTML 已死: XHTML 語(yǔ)法永存
這一混亂局面到了 2009 年開(kāi)始變得清晰,W3C 宣布終止 XHTML 2 的工作,這是一份關(guān)于 XHTML 2 的遲到的訃告。這一消息被那些 XML 的反對(duì)者視為珍寶,他們借此嘲笑那些使用 XHTML 1 規(guī)范的人,然而他們似乎忘記了,XHTML 1 和 XHTML 2 是截然不同的東西。于此同時(shí),XHTML 1 規(guī)范的制定者擔(dān)心,XHTML 1 中的嚴(yán)格語(yǔ)法規(guī)范會(huì)被 HTML5 棄用,這種擔(dān)心后來(lái)證明是多余的,HTML5 既支持松散語(yǔ)法,也支持 XHTML 1 般的嚴(yán)格語(yǔ)法。
HTML5 路線(xiàn)圖
HTML5 的現(xiàn)狀是,它不再象以前那樣讓人困惑,然而仍不夠明朗。有兩個(gè)組織在同時(shí)制定它的規(guī)范,這兩個(gè)組織有著完全不同的行事風(fēng)格,WHATWG 是先買(mǎi)后嘗,W3C 是先嘗后買(mǎi),他們形成了一個(gè)不太靠譜的聯(lián)姻,最終人們必將面臨一個(gè) HTML5 還是 HTML 5 的問(wèn)題。
更讓開(kāi)發(fā)者困惑的是,他們什么時(shí)候才可以試水 HTML5。
在一次訪(fǎng)談中,Ian Hickson 提到了 2022,表示要到那時(shí) HTML5 才會(huì)形成"推薦標(biāo)準(zhǔn)",此話(huà)一出,立刻招來(lái) Web 設(shè)計(jì)者們的憤怒,盡管他們不知道推薦標(biāo)準(zhǔn)時(shí)什么意思,但他們明白,2022 已經(jīng)是猴年馬月的事了。
這還不算,更重要的是,這個(gè)推薦標(biāo)準(zhǔn)涉及兩套規(guī)范,考慮到 HTML5 標(biāo)準(zhǔn)的規(guī)模,這個(gè)日期還是太樂(lè)觀了,畢竟,各大瀏覽器以往對(duì)既有標(biāo)準(zhǔn)的兼容并不遂人意,想當(dāng)初,IE 花了10年才接納 abbr 這個(gè)標(biāo)簽。
2012 年,HTML5 會(huì)被接納為候選標(biāo)準(zhǔn),這將是 HTML5 真正開(kāi)始發(fā)力的日子。對(duì) Web 開(kāi)發(fā)設(shè)計(jì)者來(lái)說(shuō),這并不重要,重要的是瀏覽器的支持,就像 CSS 2.1,當(dāng)有瀏覽器開(kāi)始支持這一規(guī)范的時(shí)候,就有開(kāi)發(fā)設(shè)計(jì)者在使用了,倘若必須等到所有瀏覽器都支持才開(kāi)始入手,恐怕我們現(xiàn)在還在等待中。
HTML5 也一樣,并不會(huì)有一個(gè)時(shí)間點(diǎn),宣布 HTML5 已經(jīng)準(zhǔn)備妥當(dāng),相反,我們會(huì)先開(kāi)始使用它的部分功能,HTML5 并不是一個(gè)從零開(kāi)始全新的東西,它是舊的 HTML 標(biāo)準(zhǔn)的改進(jìn),事實(shí)上,不管你正在使用的 HTML 是哪個(gè)版本,你已經(jīng)在使用 HTML5 了。
評(píng)論列表
查看所有 條評(píng)論