管窺HTML5
html5和html4地位
Html5目前雖然是全新的,但是它仍然處在不成熟的階段,其完整的規范還未完全定稿,標準仍會發生變化。但是這種變化是不會影響到html4的規范的。因為html4已經成型10多年,肯定不會再發生變化。Html5不是顛覆性的革新,但只是旨在進化而非革命,畢竟沒有從頭再來的必要。互聯網上存在的html已經存在幾十年啦,支持現存的html文檔是非常有必要的。
語法的差異
Html5要的就是簡單,避免不必要的復雜性。與html4相比,html5做了以下的改進:
- 以瀏覽器原生能力代替復雜的javascript代碼。
- 新的簡化的DOCTYPE。
- 新的簡化的字符集申明。
- 簡單而強大的html5 API。
為了簡化操作,html5的規范比以往任何版本的html規范都要精確,詳細,為了避免造成誤解。
詳細的API
除了原先html的DOM接口,html5增加了更多的API,如:
- 用于即時2D繪圖的Canvas標簽
- 定時媒體播放,不需要插件
- 離線數據庫存儲(離線網絡應用程序)
- 文檔編輯
- 拖拽控制
- 瀏覽歷史管理
新的標記
HTML 5提供了一些新的元素和屬性,反映典型的現代用法網站。其中有些是技術上類似div和span標簽,但有一定含義,例如nav(網站導航塊)和footer。這種標簽將有利于搜索引擎的索引整理、小屏幕設備和視障人士使用。同時為其他瀏覽要素提供了新的功能,通過一個標準接口,如audio和video標記。
一些過時的HTML 4標記將取消,其中包括純粹用作顯示效果的標記,如font和center,因為它們已經被CSS取代。還有一些通過DOM的網絡行為。
盡管和SGML在標記上的相似性,HTML5的句法并不再基于它了,而是被設計成向后兼容對老版本的HTML的解析。它有一個新的開始行看起來就像SGML的文檔類型聲明,<!DOCTYPE html>,這會觸發和標準兼容的渲染模式。
無障礙
為了使 HTML5 的新元素或新屬性獲取最大化的兼容性,開發人員需要附加一點額外補助,或者有些特性根本沒有被任何瀏覽器實現,或者瀏覽器根本不支持補助技術。因此有些特殊的 HTML5 特性根本不能使用。
異常處理
HTML5(text/html)瀏覽器將在錯誤語法的處理上更加靈活。HTML5在設計時保證舊的瀏覽器能夠安全地忽略掉新的HTML5代碼。與HTML4.01相比,HTML5給出了解析的詳細規則,力圖讓不同的瀏覽器即使在發生語法錯誤時也能返回相同的結果。
canvas標簽替代Flash
作為html5的一個重要的屬性,我想把它單獨列出來。Flash給很多Web開發者帶來了麻煩,要在網頁上播放Flash需要一堆代碼和插件。canvas標簽使得開發者只要使用一個標簽就 能和用戶產生UI交互。雖然目前canvas標簽還不能實現Flash的所有功能,但是很快canvas就會讓 Flash看起來老土。所以很多前衛的web開發者預言,未來的糂