
常州市新北區典雅商業廣場2號樓501、502、525、526
1、避免不必要的復雜性
Jeremy舉了DOCTYPE的例子,表示HTML 4.01和XHTML中的DOCTYPE過于冗長,連自己都記不住這些內容,但在HTML5中只需要簡單的就可以了。DOCTYPE是給驗證器用的,而非瀏覽器,瀏覽器只在做DOCTYPE切換時關注這個標簽,因此并不需要寫得太復雜。然后,他又提到如何指定字符集,在HTML5中只需要。
規范也許會寫得十分復雜,但瀏覽器的實現卻可能很簡單,規范有時會去遷就瀏覽器的實現。
2、支持已有內容
XHTML 2.0最大的問題就是不支持已經存在的內容,這違反了Postel法則。現實情況中,開發者可以寫出各種風格的HTML,瀏覽器遇到這些代碼時,在內部所構建出的結構應該是一樣的,呈現的效果也應該是一樣的。
3、解決實際問題
規范應該去解決現實中實際遇到的問題,而不該考慮那些復雜的理論問題。例如,既然有在中嵌套多個段落標簽的需要,那就讓規范支持它。
4、用戶怎么使用的,就怎么設計規范
當一個實踐已經被廣泛接受時,就應該考慮將它吸納進來,而不是禁止它或搞一個新的實踐出來。
例如,HTML5中新增了nav、section、article及aside標簽,它們引入了新的文檔模型,即文檔中的文檔。在section中,還可以嵌套h1到h6的標簽,這樣就有了無限的標題層級,這也是很早之前Tim Berners Lee所設想的。
5、優雅地降級
Jeremy在此處舉了input的例子,HTML5中input標簽的type屬性增加了很多類型,當瀏覽器不支持這些類型時,默認會將其視為text。這就是一種優雅降級。
此外,在談到HTML5與Flash之爭時,他認為很多情況下,這就是
6、支持的優先級
在考慮優先級時,應該按照這個順序:
用戶 > 編寫HTML的開發者 > 瀏覽器廠商 > 規范制定者 > 理論
用戶與開發者的重要性要遠遠高于規范和理論。
在最后的問答環節中,有人提到了HTML5的語法過于靈活,會造成一定的濫用,Jeremy表示贊同,并推薦使用類似JavaScript Lint的工具來幫助編寫更好的代碼。