|
4月17日,在由InfoQ獨家社區(qū)支持的上海“擁抱HTML5”活動上,第一次來到中國的《JavaScript DOM編程藝術》和《HTML5 For Web Designer》作者Jeremy Keith與大家一起回顧了HTML的發(fā)展歷程,分享了HTML5的設計原則,并與在場與會者做了精彩互動。
首先,Jeremy回顧了HTML的歷史,從HTML 2.0到XHTML 2.0,此處他引用了Postel法則(魯棒性原則):
對自己發(fā)送的東西要嚴格,對接收的東西則要寬容。
指出XHTML 2.0由于語法解析過于嚴格,因此不太適合于Web。
Jeremy認為所有的項目都應該有設計原則,HTML5也同樣如此,W3C就為此發(fā)布了HTML設計原則,他強調(diào)了其中的兼容性、實用性與互操作性。
1、避免不必要的復雜性
Jeremy舉了DOCTYPE的例子,表示HTML 4.01和XHTML中的DOCTYPE過于冗長,連自己都記不住這些內(nèi)容,但在HTML5中只需要簡單的<!DOCTYPE html>就可以了。DOCTYPE是給驗證器用的,而非瀏覽器,瀏覽器只在做DOCTYPE切換時關注這個標簽,因此并不需要寫得太復雜。然后,他又提到如何指定字符集,在HTML5中只需要<meta charset="utf-8">。
規(guī)范也許會寫得十分復雜,但瀏覽器的實現(xiàn)卻可能很簡單,規(guī)范有時會去遷就瀏覽器的實現(xiàn)。
2、支持已有內(nèi)容
XHTML 2.0最大的問題就是不支持已經(jīng)存在的內(nèi)容,這違反了Postel法則。現(xiàn)實情況中,開發(fā)者可以寫出各種風格的HTML,瀏覽器遇到這些代碼時,在內(nèi)部所構建出的結構應該是一樣的,呈現(xiàn)的效果也應該是一樣的。
3、解決實際問題
規(guī)范應該去解決現(xiàn)實中實際遇到的問題,而不該考慮那些復雜的理論問題。例如,既然有在<a>中嵌套多個段落標簽的需要,那就讓規(guī)范支持它。
4、用戶怎么使用的,就怎么設計規(guī)范
當一個實踐已經(jīng)被廣泛接受時,就應該考慮將它吸納進來,而不是禁止它或搞一個新的實踐出來。
例如,HTML5中新增了nav、section、article及aside標簽,它們引入了新的文檔模型,即文檔中的文檔。在section中,還可以嵌套h1到h6的標簽,這樣就有了無限的標題層級,這也是很早之前Tim Berners Lee所設想的。
5、優(yōu)雅地降級
Jeremy在此處舉了input的例子,HTML5中input標簽的type屬性增加了很多類型,當瀏覽器不支持這些類型時,默認會將其視為text。這就是一種優(yōu)雅降級。
此外,在談到HTML5與Flash之爭時,他認為很多情況下,這就是<video>和<object>的問題,完全沒有必要二者選其一。可以先使用<video>,當瀏覽器不支持時降級到<object>,反之亦然。如果瀏覽器對兩者都不支持,再降級到<a>,提供一個鏈接。
6、支持的優(yōu)先級
在考慮優(yōu)先級時,應該按照這個順序:
用戶 > 編寫HTML的開發(fā)者 > 瀏覽器廠商 > 規(guī)范制定者 > 理論
用戶與開發(fā)者的重要性要遠遠高于規(guī)范和理論。
在最后的問答環(huán)節(jié)中,有人提到了HTML5的語法過于靈活,會造成一定的濫用,Jeremy表示贊同,并推薦使用類似JavaScript Lint的工具來幫助編寫更好的代碼。
此外,有人擔心<video>外觀的可定制性不強,控件不美觀,可能會重蹈<select>的覆轍。Jeremy當場演示了一個通過CSS定制樣式的<video>,并表示如果不喜歡瀏覽器提供的控件,完全可以實現(xiàn)自己的控件。
HTML5已不再遙遠,不必等到規(guī)范成熟后才去使用,各個主流瀏覽器均已紛紛支持HTML5中的一些特性,大家可以從現(xiàn)在開始,擁抱HTML5。您又是怎么看待HTML5的呢?
it知識庫:HTML5設計原則,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。