W3C 日前宣布將從2009年底起終止同 XHTML 2 工作組的合約,并以此暗示曾經(jīng)一度野心勃勃的 XHTML 2 的正式死亡。Web 設(shè)計(jì)界是否該因此而恐慌?畢竟 XHTML 1.x 是所有對(duì) Web 標(biāo)準(zhǔn)驗(yàn)證有著某種情節(jié)的人的首選,然而事實(shí)并非如此,XHTML 2.0 偃旗息鼓已有時(shí)日,W3C 只是明確了它的死亡日期,并將主要精力傾注到他們的新寵兒,HTML 5 身上。
如何看待 Web 設(shè)計(jì)師們所鐘愛(ài)的 XHTML?
要弄明白 XHTML 如何獲得人們的青睞,得從 HTML4 說(shuō)起。HTML 4 是一種松散的語(yǔ)言,它擁有很多選項(xiàng),囊括了太多人們對(duì) Web 的試驗(yàn)性想法,一些是好的,一些是壞的,然而,要 HTML 4 為蹩腳的網(wǎng)頁(yè)代碼負(fù)責(zé),好比要英語(yǔ)為低劣的小說(shuō)負(fù)責(zé)。 HTML 4 也可以結(jié)構(gòu)嚴(yán)謹(jǐn)并擁有合法的語(yǔ)義,只要設(shè)計(jì)師們知道該如何使用它。
而 XHTML 1.0 更嚴(yán)格,那些驗(yàn)證工具更容易指出其中的錯(cuò)誤,如果你很懶,又想保證自己的代碼結(jié)構(gòu)嚴(yán)謹(jǐn),XHTML 1.x 要容易檢查得多。
然而問(wèn)題是,XHTML 的使命并非單單如此,XHTML 的使命在于它名字中的那個(gè) X,X 的存在不是為了耍酷,而是因?yàn)?XHTML 事實(shí)上屬于 XML。象正在為 HTML 5 細(xì)則工作的 Henri Sivonen 指出的那樣,XHTML 事實(shí)上有兩個(gè)意義,一是技術(shù)上的,一是市場(chǎng)上的。
從技術(shù)的角度,XHTML 原本是要以 application/xhtml+xml MIME 類(lèi)型輸出純粹的 XML 的,然而這種情形很少見(jiàn),這并非說(shuō) XML 不重要,事實(shí)上未來(lái)的 XHTML 5 將對(duì) HTML 5 提供序列化服務(wù)。而 XHTML 的大量使用更多是基于市場(chǎng)的角度,換句話說(shuō),那些采用 XHTML 語(yǔ)法的網(wǎng)頁(yè)仍然被瀏覽器按 text/html MIME 類(lèi)型渲染,因此,盡管這些文檔屬于 XML,但它們并沒(méi)被當(dāng)作真正的 XML,而是按 HTML 進(jìn)行渲染。
人們?yōu)槭裁聪矚g XHTML?
既然 XHTML 就是 HTML,那些喜歡 XHTML 的人又是出于什么樣的初衷?答案是,XHTML 鼓勵(lì)良好的代碼習(xí)慣,所有標(biāo)簽都需要完整,嚴(yán)謹(jǐn),XHML 可以產(chǎn)生比 HTML 4 更干凈的代碼。
然而 HTML 5 已經(jīng)解決了 HTML 4 中大部分的此類(lèi)問(wèn)題,它允許你使用 XHTML 1.x 式的嚴(yán)謹(jǐn)代碼,當(dāng)然也允許 HTML 4 式的松散代碼,這意味著, Web 設(shè)計(jì)師們之前編寫(xiě)的 XHTML 1.x 代碼可以直接轉(zhuǎn)到 HTML 5,只需更改一下 doctype 即可。
XHTML 2.0 錯(cuò)在哪里?
盡管初衷是好的,但 XHTML 2.0 的夭亡來(lái)自兩件事,第一,它不向前兼容,意味著你寫(xiě)的 XHTML 1.x 代碼無(wú)法直接用于 XHTML 2.0, 相反, HTML 5 卻向前兼容。第二,XHTML 2.0 并非 HTML 的 XML 化,而是一種全新的體系,它忽視了設(shè)計(jì)師們的需求。
而 HTML 5 卻包含了設(shè)計(jì)師們需要的很多東西,本地的音頻,視頻支持,多欄布局工具,離線數(shù)據(jù)庫(kù),本地的矢量圖支持,這一切,XHTML 絲毫沒(méi)有觸及。
HTML 5 的光明未來(lái)
XHTML 2.0 雖然已被提出多年,然而迄今沒(méi)有任何瀏覽器實(shí)現(xiàn)對(duì)它的任何支持,HTML 5 卻得到了幾乎所有現(xiàn)代瀏覽器到青睞,包括 Firefox, Safari, Chrome, Opera,甚至 IE8 也實(shí)現(xiàn)了對(duì)它的某些支持。
那些在 Web 領(lǐng)域野心勃勃的大廠商,比如 Google, Apple,已經(jīng)推出基于 HTML 5 的 Web 服務(wù),使用本地化視頻支持與本地?cái)?shù)據(jù)庫(kù)實(shí)現(xiàn)了各種應(yīng)用,而基于 XHTML 2.0 的應(yīng)用卻幾乎沒(méi)有有。
另外,HTML 5 還推出了 XHTML 5 細(xì)則,XHTML 5 向當(dāng)前 Web 中大量基于 XHTML 1.x 的網(wǎng)頁(yè)伸出橄欖枝,XHTML 1.x 如果僅僅是作為 HTML 的一種 XML 式編碼風(fēng)格,并不會(huì)被遺棄,事實(shí)上,還會(huì)工作得更好。