HTML5新手入門指南
HTML5的發展越來越邁向成熟,很多的應用已經逐漸出現在你我日常生活中了,不只讓傳統網站上的互動Flash逐漸的被HTML5的技術取代,更重要的是可以透過HTML5的技術來開發跨平臺的手機軟件,讓許多開發者感到十分興奮!
當你開始想要學習、試圖想要投入相關的開發時,由于HTML5的技術還在持續發展、進化當中,學習的資源也都比較零散,較難有一個整體的方向。在本篇文章中,筆者將會介紹HTML5的主要技術組成,并且提供一些學習資源讓大家參考。
HTML5到底是什么?
一般廣義而言的HTML5則包含了HTML、CSS和JavaScript三個部分,不單單只是HTML部分而已,CSS 3和JavaScript也有許多的創新,讓整個網頁程序功能更加繽紛。
HTML5的技術組成
脫機功能
HTML5透過JavaScript提供了數種不同的脫機儲存功能,相對于傳統的Cookie而言有更好的彈性以及架構,并且可以儲存更多的內容。
- WebStorage: 比 Cookies 更大、更有彈性的的儲存
- Web SQL Database: 本地端的SQL數據庫
- Indexed DB: Key-value 的本地數據庫
- Application Cache: 將部分常用的網頁內容cache起來
實時通訊
以往網站由于HTTP協議以及瀏覽器的設計,實時的互動性相當的受限,只能使用一些技巧來「仿真」實時的通訊效果,但HTML5提供了完善的實時通訊支持。
- WebSocket: 實時的socket聯機
- Web Workers: 以往 JavaScript 都是 single thread,透過 Worker 可以有多個運算
- Notifications: 原生的提示訊息,類似像OS X的Growl提示
檔案以及硬件支持
不知道大家有沒有發現,在Gmail等新的網頁程序當中,已經可以透過拖拉的方式將檔案作為郵件附件?這就是這部份HTML5檔案的功能中的Dragn Drop和File API。
- Dragn Drop: HTML元素的拖拉
- File API: 讀取用戶本機計算機的內容
- Geolocation: 地理定位
- Device orientation: 手持裝置的方向
- Speech input: 語音輸入
語義化
語義化的網絡是可以讓計算機能夠更加理解網頁的內容,對于像是搜索引擎的優化(SEO)或是推薦系統可以有很大的幫助。
- New tags: 新的標簽,像是 header、 section等
- Application tags: 也是新的標簽,像是 meter、 progress
- 等
- Microdata: 加入語義的數據讓搜索引擎等網站可以正確顯示
- Form type: form可以加入的type便多了,包含email和tel等屬性,瀏覽器會協助進行數據格式的驗證
多媒體
Audio、Video的卷標支持以及Canvas的功能應該是大家對于HTML5最熟悉的部份了,也是許多人認為Flash會被取代的主要原因。
- Audio video: 影片和音樂的原生播放支持
- Canvas: 2D的繪圖功能支持
- Canvas 3D: 3D的繪圖功能支持
- SVG: 向量圖支援
CSS 3
CSS3支持了字體的嵌入、版面的排版,以及最令人印象深刻的動畫功能。
- Selector: 更有彈性的選擇器
- Webfonts: 嵌入式字體
- Layout: 多樣化的排版選擇
- Stlying radius gradient shadow: 圓角、漸層、陰影
- Border background: 邊框的背景支持
- Transition: 組件的移動效果
- Transform: 組件的變形效果
- Animation: 將移動和變形加入動畫支持
JavaScript
在比較JavaScript的基本面也新增了DOM的API、和瀏覽器上下頁的紀錄修改。
- DOM API: 更方便的查詢DOM組件
- History API: 瀏覽器的上下頁內容修改,方便AJAX可以保留瀏覽記錄
現在就開始用HTML5
截至目前而言,主流的網頁瀏覽器Firefox 5、Chrome 12和Safari 5都已經支持了許多的HTML5標準,而且目前最新版的IE 9也支持了許多HTML5標準,隨著使用者陸續升級到新版的瀏覽器,開發者應該在現在就可以著手開發!
而對于舊的瀏覽器兼容性而言,先前撰文介紹過的CSS3 Pie便是一個讓舊版瀏覽器也能支持CSS 3功能的JavaScript函數庫。
而Modernizer也是一個相當重要的JavaScript函數庫,提供開發者輕松的方式判別目前使用者的瀏覽器是否有支持特定的HTML5功能。
學習方向
在看完本篇文章之后,大家或許可以針對自己有興趣的方面透過關鍵詞搜尋去尋找相關的學習資源以及內容。
Google的HTML5 Rocks網站也是我相當推薦的,其中的透過HTML5開發的HTML5介紹投影片更是值得一看,可以將上述的內容都實際試玩(推薦使用Chrome瀏覽器以獲得完整的功能效果)。