HTML5 快速學習一

MiroYuan發表於2014-11-21

關注HTML5有一段時間了,一直沒系統的去學習過。

對於HTML5的理解,之前停留在一些新的標籤,一些api可以完成部分js完成的事情,僅此而已。

前段時間HTML5定稿了,看了一些這方面的報導,進行了系統的學習,HTML5能做的遠比你想象的多。

是時候開始學習了。

本系列內容主要參考"HTML5高階程式設計"和W3SCHOOL.

本文是系列的第一篇: HTML5初窺。

文章提綱

  • 概述
  • HTML5發展史 & 設計理念
  • HTML5新功能快速預覽
  • 總結

概述

隨著未來桌面移動化程式的逐漸普及, 移動裝置與桌面裝置使用的技術架構不可避免會有趨同的走勢,HTML5 是唯一通吃 PC、Mac、iPhone、iPad、Android、Windows Phone 等主流平臺的跨平臺語言, 是時候採用HTML5+CSS3+JS構建新的Web應用了。

作為下一代Web語言,HTML5不再只是一種標記語言,它為下一代Web提供了全新的框架和平臺,包括提供免外掛的音訊視訊、影象動畫、本地儲存及更多酷炫的功能,是Web能夠輕鬆實現native的體驗。

HTML5發展史&設計理念

HTML5發展史

我把HTML5的發展史概括成三句話,詳細內容有興趣自己查閱,我就不多說了。

1993年HTML首次以因特網草案的形式釋出,從2.0,3.2,4.0直到1999年的4.01版,4.01後開始停滯不前,W3C掌握著HTML規範的控制權。

一組人2004年成立了WHATWA(Web Hypertext Application Technology Working Group), 他們創立了HTML5規範, 同時針對Web應用開發新功能。(Web 2.0就是這個時候被髮明的)

2006年,W3C又重新介入HTML,並於2008年釋出了HTML5的工作草案,上個月正式定稿。

HTML5設計理念

1. 相容性

支援現有文件並保持平滑過渡。

例如Google分析了上百萬的頁面,從中分析出DIV標籤的通用ID名稱,發現其中重複量很大, 很多開發人員都喜歡用DIV id="header"來標記頁首區域。HTML5於是直接定義了一個<header>標籤。

2. 實用性(效率和使用者優先)

HTML5規範是基於使用者優先準則編寫的,其宗旨是"使用者至上",這意味著遇到無法解決的衝突時,規範會把使用者放到第一位,其次是頁面作者,再次是實現者(瀏覽器),最後才考慮到理論的純粹性。

3. 化繁為簡

主要做了以下改進:

以瀏覽器原生能力代替複雜的js程式碼;

新的簡化的DOCTYPE;

新的簡化的字符集宣告;

簡單而強大的HTML5 API;

4. 通用訪問性

這個原則分為三個概念。

可訪問性:出於對殘障人士考慮,HTML5和WAI(Web Accessibility Initiative)和ARIA(Accessible Rich Internet Applications)做了緊密結合,WAI-ARIA中以螢幕閱讀器為基礎的元素已經被新增到HTML中。

媒體中立:如果可能的話,HTML5的功能在所有不同的裝置和平臺上應該都能正常執行。

支援所有語種:例如,新的<ruby>元素支援在東亞頁面排版中會用到的Ruby註釋。

Note

<ruby>定義和用法:

<ruby> 標籤定義 ruby 註釋(中文注音或字元)。

在東亞使用,顯示的是東亞字元的發音。

與 <ruby> 以及 <rt> 標籤一同使用:

ruby 元素由一個或多個字元(需要一個解釋/發音)和一個提供該資訊的 rt 元素組成,還包括可選的 rp 元素,定義當瀏覽器不支援 "ruby" 元素時顯示的內容。

HTML5新功能快速預覽

新的DOCTYPE和字符集

根據上面提到的HTML5設計準則化繁為簡,Web頁面的DOCTYPE被極大的簡化了。

HTML4 DOCTYPE

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE>

誰能記得住?

請看HTML5 DOCTYPE

<!DOCTYPE html>

跟DOCTYPE一樣,字符集的宣告也被簡化了。

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

現在成了

<meta charset=utf-8" />

 

新元素和舊元素

HTML5標記元素根據內容型別的不同,分成7大類:

內嵌

像文件中新增其他型別的內容,例如audio、video、canvas和iframe等

在文件和應用的body中使用的元素,例如form、h1和small等

標題

段落標題,例如h1、h2和hgroup等

互動

與使用者互動的內容,例如button和textarea等

後設資料

通常出現在頁面的head中,設定頁面其他部分的表現和行為,例如script、style和title等

短語

文字和文字標記元素,例如mark、kbd、sub和sup等

片段

用於定義文件中片段的元素,例如article、aside和title等

 

語義化標記

HTML5新的片段類元素介紹

header

標記頭部區域的內容(用於整個頁面或頁面中的一塊區域)

footer

標記腳部區域的內容(用於整個頁面或頁面中的一塊區域)

section

web頁面中的一塊區域

article

獨立的文章內容

aside

相關內容或引文

nav

導航類輔助內容

 

下面是一個標籤位置的示意圖

 

使用Selectors API簡化選取操作

除了語義化元素外,HTML5還引入了一種用於查詢頁面DOM元素的快捷方式。

HTML5之前查詢元素的js舉例:

函式:getElementById()

舉例:<div id="foo"> getElementById("foo")

HTML5有了新的Selectors API, 可以用更精確的方式來指定希望獲取的元素,而不必再用標準的DOM的方式迴圈遍歷。使用方式類似於CSS中使用的選擇規則一樣。舉例:

函式1:querySelector()

描述:根據指定的選擇規則,返回在頁面中找到的第一個匹配元素

示例:querySelector("input.error")

結果:返回第一個CSS類名為"error"的文字選擇框

------------

函式2:querySelectorAll()

描述:根據指定規則返回頁面中所有相匹配的元素

示例:querySelectorAll("#results td")

結果:返回id值為results的元素下所有的單元格

Note

1. 可以為Selector API函式同時指定多個規則,例如

//選擇文件中名為highClass或lowClass的第一個元素

var x= document.querySelector(".highClass",".lowClass");

2. Selectors API不僅僅只是方便,在遍歷DOM的時候,

    Selectors API通常會比以前的遍歷搜尋更快,瀏覽器對選擇器匹配進行了高度優化。

window.JSON

JSON作為js語法的一個子集,它將資料表示為物件字面量。

由於其語法簡單和在js程式設計中與生俱來的相容性,JSON變成了HTML5應用內部資料交換的事實標準。

典型的JSON API包含兩個函式,parse()和stringify(), 分別用於將字串序列化成DOM物件和將DOM物件轉換成字串。

如果舊的瀏覽器使用JSON,需要js庫。

在js中執行解析和序列化效率往往不高,所以為了提高執行速度,新的瀏覽器原生擴充套件了對JSON的支援,可以直接通過js來呼叫JSON了。

 

總結

本文首先介紹了HTML5的一些重要特點,HTML的歷史和設計理念。

最後對HTML5的新功能進行了快速預覽。

趕緊抽時間學習HTML5吧!

好了,今天就到這裡。

歡迎大家多多評論,讓下一篇文章更好 :)

 

相關文章