1. 程式人生 > >shuyong1999的專欄

shuyong1999的專欄

HTML是Web統一語言,這些容納在尖括號裡的簡單標籤,構成了如今的Web,1991年,Tim Berners-Lee編寫了一份叫做“HTML標籤”的文件,裡面包含了大約20個用來標記網頁的HTML標籤。他直接借用SGML的標記格式,也就是後來我們看到的HTML標記的格式。

從IETF到W3C:HTML 4之路

HTML 1並不曾存在,HTML的第一個官方版本就是由IETF(網際網路工程任務組)推出的HTML 2.0。問世之前,這個版本中的很多細則已經被實現,比如,1994年的Mosaic瀏覽器已經實現了在文件中嵌入圖片的方法,後來HTML 2.0便吸納了img這個標籤。

後來,W3C取代IETF的角色,成為HTML的標準組織,1990年代的後半頁,HTML的版本被頻繁修改,直到1999年的HTML 4.01, 至此,HTML到達了它的第一個拐點。

XHTML 1:XML風格的HTML

HTML在HTML 4.01之後的第一個修訂版本就是XHTML 1.0,其中X代表“eXtensible”,擴充套件,當然也有人將之解讀為 “eXtreme”,極端。XHTML 1.0是基於HTML 4.01的,並沒有引入任何新標籤或屬性,唯一的區別是語法,HTML對語法比較隨便,而 XHTML則要求XML般的嚴格語法。

使用嚴格的語法規範並非壞事,要求開發者使用單一的程式碼風格,比如,HTML4.01允許你使用大寫或小寫字母標識標記元素和屬性,XHTML則只 允許小寫字母。XHTML1.0的推出剛好碰上了CSS的崛起,Web開發設計者們開始意識到Web標準問題,基於XHTML的嚴格語法規範被視為編寫 HTML程式碼的最佳實踐。

W3C推出XHTML 1.1

如果說XHTML 1.0是XML風格的HTML,XHTML 1.1則是貨真價實的XML。這意味著XHTML 1.1無法使用 text/htmlmime-type直接輸出,然而,如果Web開發者使用XMLmime-type,則當時的主流瀏覽器,IE則壓根不支援。看上去,W3C似乎正在與當時的Web脫節。

出力不討好的XHTML 2

對W3C而言,到了HTML 4已經是功德圓滿,他們的下一步工作是XHTML 2,希望將Web帶向XML的光明未來。雖然XHTML 2聽上去和XHTML 1類似,它們卻有很多差別,XHTML 2不向前相容,甚至不相容之前的HTML。它是一種全新的語言,赤條條來去無牽掛。這實在是一場災難。

WHATWG:與W3C決裂

W3C閉門造車的作風引起了一些人的不滿,來自Opera,Apple,以及Mozilla的代表開始表達反對聲音。2004年,Opera的 Ian Hickson提議在HTML基礎上進行擴充套件以適應新的Web應用,該提議遭到W3C的拒絕。於是,他們自發組織成立了超文字應用技術工作組,就是WHATWG。

從WebApps1.0到HTML 5

從一開始,WHATWG就和W3C走不同的路線,W3C對問題的討論是集體投票,而WHATWG則由主筆IanHickson定度。表面上看,W3C更民主,然而事實上,各種內部紛爭會使一些決議限於泥潭,在WHATWG,事情的進展會更容易,不過,主筆的權力並非無限大,他們的委員會可以 對那些過於偏執的主筆進行彈劾。

一開始,WHATWG的主要工作包括兩部分,Web Forms 2.0和Web Apps 1.0,它們都是HTML的擴充套件,後來,他們合併到一起成為現在的HTML 5規範。在WHATWG致力於HTML 5的同時,W3C繼續他們的XHTML 2.0,然而,他們慢慢地陷入困境。

2006年10月,Web之父Tim Berners-Lee發表了一篇部落格文章,表示,從HTML走向XML的路是行不通的,幾個月後,W3C組建了一個新的HTML工作組,他們非常明智地 選擇了WHATWG的成果作為基礎。這一轉變帶來一些困惑,W3C同時進行這兩套規範,XHTML2和HTML 5(注意,W3C的HTTML5在5之前有個空格,而WHATWG的HTML 5則沒有空格),而WHATWG也在進行著同樣的工作。

XHTML已死:XHTML語法永存

這一混亂局面到了2009年開始變得清晰,W3C宣佈終止XHTML2的工作,這是一份關於XHTML2的遲到的訃告。這一訊息被那些XML的反對 者視為珍寶,他們藉此嘲笑那些使用XHTML1規範的人,然而他們似乎忘記了,XHTML1和XHTML2是截然不同的東西。於此同時,XHTML1規範的制定者擔心,XHTML1中的嚴格語法規範會被HTML 5棄用,這種擔心後來證明是多餘的,HTML 5既支援鬆散語法,也支援XHTML1般的嚴格語 法。

HTML 5路線圖

HTML 5的現狀是,它不再象以前那樣讓人困惑,然而仍不夠明朗。有兩個組織在同時制定它的規範,這兩個組織有著完全不同的行事風格,WHATWG是先買後嘗,W3C是先嚐後買,他們形成了一個不太靠譜的聯姻,最終人們必將面臨一個HTML 5還是HTML 5的問題。更讓開發者困惑的是,他們什麼時候才可以試水HTML 5。()

在一次訪談中,Ian Hickson提到了2022,表示要到那時HTML 5才會形成"推薦標準",此話一出,立刻招來Web設計者們的憤怒,儘管他們不知道推薦標準時什麼意思,但他們明白,2022已經是猴年馬月的事了。

這還不算,更重要的是,這個推薦標準涉及兩套規範,考慮到HTML 5標準的規模,這個日期還是太樂觀了,畢竟,各大瀏覽器以往對既有標準的相容並不遂人意,想當初,IE花了10年才接納abbr這個標籤。

2012年,HTML 5會被接納為候選標準,這將是HTML 5真正開始發力的日子。對Web開發設計者來說,這並不重要,重要的是瀏覽器的支援,就像CSS2.1,當有瀏覽器開始支援這一規範的時候,就有開發設計者在使用了,倘若必須等到所有瀏覽器都支援才開始入手,恐怕我們現在還在等待中。

HTML 5也一樣,並不會有一個時間點,宣佈HTML 5已經準備妥當,相反,我們會先開始使用它的部分功能,HTML 5並不是一個從零開始全新的東西,它是舊的HTML標準的改進,事實上,不管你正在使用的HTML是哪個版本,你已經在使用HTML 5了。