總聽到很多人說H5,現在H5很火,到底H5是什麼,以下發表個人對H5的理解。
HTML5 將成為 HTML、XHTML 以及 HTML DOM 的新標準。
HTML 的上一個版本誕生於 1999 年。自從那以後,Web 世界已經經歷了鉅變。
HTML5 仍處於完善之中。然而,大部分現代瀏覽器已經具備了某些 HTML5 支援。
設計目的
HTML5的設計目的是為了在移動裝置上支援多媒體。新的語法特徵被引進以支援這一點,如video、audio和canvas 標記。
HTML5還引進了新的功能,可以真正改變使用者與文件的互動方式,包括:
- · 新的解析規則增強了靈活性
- · 新屬性
- · 淘汰過時的或冗餘的屬性
- · 一個HTML5文件到另一個文件間的拖放功能
- · 離線編輯
- · 資訊傳遞的增強
- · 詳細的解析規則
- · 多用途網際網路郵件擴充套件(MIME)和協議處理程式註冊
- · 在SQL資料庫中儲存資料的通用標準(Web SQL)
HTML5在2007年被全球資訊網聯盟(W3C)新的工作組採用。這個工作組在2008年1月釋出了HTML 5的首個公開草案。眼下,HTML5處於“呼籲審查”狀態,W3C預期它將在2014年年底達到其最終狀態。
特性:
語義特性(Class:Semantic)
本地儲存特性(Class: OFFLINE & STORAGE)
基於HTML5開發的網頁APP擁有更短的啟動時間,更快的聯網速度,這些全得益於HTML5 APP Cache,以及本地儲存功能。Indexed DB(html5本地儲存最重要的技術之一)和API說明文件。
裝置相容特性 (Class: DEVICE ACCESS)
從Geolocation功能的API文件公開以來,HTML5為網頁應用開發者們提供了更多功能上的優化選擇,帶來了更多體驗功能的優勢。HTML5提供了前所未有的資料與應用接入開放介面。使外部應用可以直接與瀏覽器內部的資料直接相連,例如視訊影音可直接與microphones及攝像頭相聯。
連線特性(Class: CONNECTIVITY)
更有效的連線工作效率,使得基於頁面的實時聊天,更快速的網頁遊戲體驗,更優化的線上交流得到了實現。HTML5擁有更有效的伺服器推送技術,Server-Sent Event和WebSockets就是其中的兩個特性,這兩個特效能夠幫助我們實現伺服器將資料“推送”到客戶端的功能。
網頁多媒體特性(Class: MULTIMEDIA)
支援網頁端的Audio、Video等多媒體功能, 與網站自帶的APPS,攝像頭,影音功能相得益彰。
三維、圖形及特效特性(Class: 3D, Graphics & Effects)
基於SVG、Canvas、WebGL及CSS3的3D功能,使用者會驚歎於在瀏覽器中,所呈現的驚人視覺效果。
效能與整合特性(Class: Performance & Integration)
沒有使用者會永遠等待你的Loading——HTML5會通過XMLHttpRequest2等技術,解決以前的跨域等問題,幫助您的Web應用和網站在多樣化的環境中更快速的工作。
CSS3特性(Class: CSS3)
新元素
為了更好地處理今天的網際網路應用,HTML5新增了很多新元素及功能,比如: 圖形的繪製,多媒體內容,更好的頁面結構,更好的形式 處理,和幾個api拖放元素,定位,包括網頁 應用程式快取,儲存,網路工作者,等。
canvas
標籤
|
描述
|
---|---|
<canvas>
|
標籤定義圖形,比如圖表和其他影像。該標籤基於 JavaScript 的繪圖 API
|
多媒體
標籤
|
描述
|
---|---|
<audio>
|
定義音訊內容
|
<video>
|
定義視訊(video 或者 movie)
|
<source>
|
定義多媒體資源 <video> 和 <audio>
|
<embed>
|
定義嵌入的內容,比如外掛。
|
<track>
|
為諸如 <video> 和 <audio> 元素之類的媒介規定外部文字軌道。
|
表單
標籤
|
描述
|
---|---|
<datalist>
|
定義選項列表。請與 input 元素配合使用該元素,來定義 input 可能的值。
|
<keygen>
|
規定用於表單的金鑰對生成器欄位。
|
<output>
|
定義不同型別的輸出,比如指令碼的輸出。
|
語義和結構
HTML5提供了新的元素來建立更好的頁面結構:
標籤
|
描述
|
---|---|
<article>
|
定義頁面的側邊欄內容
|
<aside>
|
定義頁面內容之外的內容。
|
<bdi>
|
允許您設定一段文字,使其脫離其父元素的文字方向設定。
|
<command>
|
定義命令按鈕,比如單選按鈕、核取方塊或按鈕
|
<details>
|
用於描述文件或文件某個部分的細節
|
<dialog>
|
定義對話方塊,比如提示框
|
<summary>
|
標籤包含 details 元素的標題
|
<figure>
|
規定獨立的流內容(影像、圖表、照片、程式碼等等)。
|
<figcaption>
|
定義 <figure> 元素的標題
|
<footer>
|
定義 section 或 document 的頁尾。
|
<header>
|
定義了文件的頭部區域
|
<mark>
|
定義帶有記號的文字。
|
<meter>
|
定義度量衡。僅用於已知最大和最小值的度量。
|
<nav>
|
定義執行中的進度(程式)。
|
<progress>
|
定義任何型別的任務的進度。
|
<ruby>
|
定義 ruby 註釋(中文注音或字元)。
|
<rt>
|
定義字元(中文注音或字元)的解釋或發音。
|
<rp>
|
在 ruby 註釋中使用,定義不支援 ruby 元素的瀏覽器所顯示的內容。
|
<section>
|
定義文件中的節(section、區段)。
|
<time>
|
定義日期或時間。
|
<wbr>
|
規定在文字中的何處適合新增換行符。
|
已移除元素
以下的 HTML 4.01 元素在HTML5中已經被刪除:
-
<acronym>
-
<applet>
-
<basefont>
-
<big>
-
<center>
-
<dir>
-
<font>
-
<frame>
-
<frameset>
-
<noframes>
-
<strike>
重要標記
<video>標記
定義和用法:
</video> 標籤定義視訊,比如電影片段或其他視訊流。
<audio> 標記
定義和用法
</audio> 標籤定義聲音,比如音樂或其他音訊流。
例項:
一段簡單的HTML5 音訊
<audio src="">
您的瀏覽器不支援 audio 標籤。
</audio>
<canvas> 標記
定義和用法:
<canvas> 標籤定義圖形,比如圖表和其他影像。
HTML5 的 canvas 元素使用JavaScript 在網頁上繪製影像。
畫布是一個矩形區域,您可以控制其每一畫素。
canvas 擁有多種繪製路徑、矩形、圓形、字元以及新增影像的方法。
例項:
通過 canvas 元素來顯示一個紅色的矩形:
<canvas id="myCanvas"></canvas>
<script type="text/javascript">
var canvas=document.getElementById('myCanvas');
var ctx=canvas.getContext('2d');
ctx.fillStyle='#FF0000';
ctx.fillRect(0,0,80,100);
</script>
程式介面
1. 用於即時2D繪圖的Canvas標籤
2. 定時媒體回放
3. 離線資料庫儲存
4.文件編輯
5. 拖拽控制
6. 瀏覽歷史管理
元素變化
新的解析順序新的元素:section, video, progress, nav, meter, time, aside, canvasinput
元素的新屬性:日期和時間,email, url。
新的通用屬性:ping, charset, async
全域屬性:id, tabindex, repeat。
移除元素:center, font, strike。
控制元件
就是Html標註的屬性里加上runat="server"所構成的控制元件,至於Html標註和Html控制元件之間的區別很明顯,Html控制元件是執行於伺服器端,Html標註是執行於客戶端。
基本Html控制元件有:HtmlTexArea\HtmlTable\HtmlImage\HtmlButton\HtmlSelect\HtmlForm\HtmlInput。
自定義的Html控制元件是根據自己的需求定義。當自主開發效率低,可以從技術社群、原始碼網站下載需要的控制元件。比如,需要插入table, image, links 等標籤。不必自己開發,可以使用:ComponentOne Wijmo Editor等。
免費HTML5圖表庫——.Net圖表控制元件Chart FX,深受大家喜愛,相信大家已經非常熟悉了。而且還從Chart FX的開發商SoftwareFX獲得一個激動人心的訊息:該公司已推出一套為HTML5,jQuery和JavaScript開發者設計的圖表庫——jChartFX,而且jChartFX是免費的!
圖表庫
.Net圖表控制元件Chart FX相信大家已經非常熟悉了。Chart FX的開發商SoftwareFX推出的一套為HTML5、jQuery和JavaScript開發者設計的免費HTML5圖表庫——jChartFX!
jChartFX亮點:
-
jChartFX充分利用了HTML5,CSS和SVG,讓您能夠在瀏覽器提供美觀優越的圖表和更豐富的終端使用者體驗。
-
jChartFX擁有很多令人振奮的功能,它在無外掛純JavaScript的瀏覽器上執行,這意味著在提高了網站安全性和速度的同時,最大程度的減少了網站伺服器的負荷。
-
jChartFX還能夠自動整合到jQuery UI ThemeRoller,自動讀取並解釋jQuery的主題和CSS檔案,能夠快速適應您的頁面佈局和設計,無需一行程式碼。
-
jChartFX支援JSON,JSON能夠幫助您實現,任何資料來源中的資料都可以展現到圖表中。
-
jChartFX還支援超過40種的2D、3D圖表型別,免費的圖表控制元件中支援如此之多的圖表展示型別實屬難得。
標籤
注:在下面表格中4: 指在HTML 4.01 中定義了該元素 5: 指在HTML 5 中定義了該元素
標籤
|
描述
| ||
---|---|---|---|
<!--...-->
|
定義註釋
|
4
|
5
|
<!DOCTYPE>
|
定義文件型別
|
4
|
5
|
<a>
|
定義超連結
|
4
|
5
|
<abbr>
|
定義縮寫
|
4
|
5
|
<acronym>
|
HTML 5 中不支援
|
4
|
|
<address>
|
定義地址元素
|
4
|
5
|
<applet>
|
定義 applet(HTML 5 中不支援)
|
4
|
|
<area>
|
定義影像對映中的區域
|
4
|
5
|
<article>
|
定義 article
|
5
|
|
<aside>
|
定義頁面內容之外的內容
|
5
|
|
<audio>
|
定義聲音內容
|
5
|
|
<b>
|
定義粗體文字
|
4
|
5
|
<base>
|
定義頁面中所有連結的基準URL
|
4
|
5
|
<basefont>
|
HTML 5 中不支援,請使用CSS 代替
|
4
|
|
<bdo>
|
定義文字顯示的方向
|
4
|
5
|
<big>
|
定義大號文字(HTML 5 中不支援)
|
4
|
|
<blockquote>
|
定義長的引用
|
4
|
5
|
<body>
|
定義 body 元素
|
4
|
5
|
<br>
|
插入換行符
|
4
|
5
|
<button>
|
定義按鈕
|
4
|
5
|
<canvas>
|
定義圖形
|
5
|
|
<caption>
|
定義表格標題
|
4
|
5
|
<center>
|
定義居中的文字(HTML 5 中不支援)
|
4
|
|
<cite>
|
定義引用
|
4
|
5
|
<code>
|
定義計算機程式碼文字
|
4
|
5
|
<col>
|
定義表格列的屬性
|
4
|
5
|
<colgroup>
|
定義表格列的分組
|
4
|
5
|
<command>
|
定義命令按鈕
|
5
|
|
<datalist>
|
定義下拉選單
|
5
|
|
<dd>
|
定義定義的描述
|
4
|
5
|
<del>
|
定義刪除文字
|
4
|
5
|
<details>
|
定義元素的細節
|
5
|
|
<dfn>
|
定義定義專案
|
4
|
5
|
<dir>
|
定義目錄列表(HTML 5 中不支援)
|
4
|
|
<div>
|
定義文件中的一個部分
|
4
|
5
|
<dl>
|
定義定義列表
|
4
|
5
|
<dt>
|
定義定義的專案
|
4
|
5
|
<em>
|
定義強調文字
|
4
|
5
|
<embed>
|
定義外部互動內容或外掛
|
5
|
|
<fieldset>
|
定義 fieldset
|
4
|
5
|
<figcaption>
|
定義 figure 元素的標題
|
5
|
|
<figure>
|
定義媒介內容的分組,以及它們的標題
|
5
|
|
<font>
|
HTML 5 中不支援
|
4
|
|
<footer>
|
定義 section 或 page 的頁尾
|
5
|
|
<form>
|
定義表單
|
4
|
5
|
<frame>
|
定義子視窗(框架)(HTML 5 中不支援)
|
4
|
|
<frameset>
|
定義框架的集(HTML 5 中不支援)
|
4
|
|
<h1> to <h6>
|
定義標題1 到標題6
|
4
|
5
|
<head>
|
定義關於文件的資訊
|
4
|
5
|
<header>
|
定義 section 或 page 的頁首
|
5
|
|
<hgroup>
|
定義有關文件中的 section 的資訊
|
4
|
5
|
<html>
|
定義 html 文件
|
4
|
5
|
<i>
|
定義斜體文字
|
4
|
5
|
<iframe>
|
定義行內的子視窗(框架)
|
4
|
5
|
<img>
|
定義影像
|
4
|
5
|
<input>
|
定義輸入域
|
4
|
5
|
<ins>
|
定義插入文字
|
4
|
5
|
<keygen>
|
定義生成金鑰
|
5
|
|
<isindex>
|
定義單行的輸入域(HTML 5 中不支援)
|
4
|
|
<kbd>
|
定義鍵盤文字
|
4
|
5
|
<label>
|
定義表單控制元件的標註
|
4
|
5
|
<legend>
|
定義 fieldset 中的標題
|
4
|
5
|
<li>
|
定義列表的專案
|
4
|
5
|
<link>
|
定義資源引用
|
4
|
5
|
<map>
|
定義影像對映
|
4
|
5
|
<mark>
|
定義有記號的文字
|
4
|
5
|
<menu>
|
定義選單列表
|
4
|
5
|
<meta>
|
定義元資訊
|
4
|
5
|
<meter>
|
定義預定義範圍內的度量
|
5
|
|
<nav>
|
定義導航連結
|
5
|
|
<noframes>
|
定義 noframe 部分(HTML 5 中不支援)
|
4
|
|
<noscript>
|
定義 noscript 部分
|
4
|
5
|
<object>
|
定義嵌入物件
|
4
|
5
|
<ol>
|
定義有序列表
|
4
|
5
|
<optgroup>
|
定義選項組
|
4
|
5
|
<option>
|
定義下拉選單中的選項
|
4
|
5
|
<output>
|
定義輸出的一些型別
|
5
|
|
<p>
|
定義段落
|
4
|
5
|
<param>
|
為物件定義引數
|
4
|
5
|
<pre>
|
定義預格式化文字
|
4
|
5
|
<progress>
|
定義任何型別的任務的進度
|
5
|
|
<q>
|
定義短的引用
|
4
|
5
|
<rp>
|
定義若瀏覽器不支援 ruby 元素顯示的內容
|
5
|
|
<rt>
|
定義 ruby 註釋的解釋
|
5
|
|
<ruby>
|
定義 ruby 註釋
|
5
|
|
<s>
|
定義加刪除線的文字(HTML 5 中不支援)
|
4
|
|
<samp>
|
定義樣本計算機程式碼
|
4
|
5
|
<script>
|
定義指令碼
|
4
|
5
|
<section>
|
定義 section
|
4
|
5
|
<select>
|
定義可選列表
|
4
|
5
|
<small>
|
定義小號文字
|
4
|
5
|
<source>
|
定義媒介源
|
4
|
5
|
<span>
|
定義文件中的 section
|
4
|
5
|
<strike>
|
定義加刪除線的文字(HTML 5 中不支援)
|
4
|
|
<strong>
|
定義強調文字
|
4
|
5
|
<style>
|
定義樣式定義
|
4
|
5
|
<sub>
|
定義下標文字
|
4
|
5
|
<summary>
|
定義 details 元素的標題
|
5
|
|
<sup>
|
定義上標文字
|
4
|
5
|
標籤
|
描述
|
4: 指在HTML 4.01 中定義了該元素
5: 指在HTML 5 中定義了該元素
| |
---|---|---|---|
<table>
|
定義表格
|
4
|
5
|
<tbody>
|
定義表格的主體
|
4
|
5
|
<td>
|
定義表格單元
|
4
|
5
|
<textarea>
|
定義 textarea
|
4
|
5
|
<tfoot>
|
定義表格的腳註
|
4
|
5
|
<th>
|
定義表頭
|
4
|
5
|
<thead>
|
定義表頭
|
4
|
5
|
<time>
|
定義日期/時間
|
5
|
|
<title>
|
定義文件的標題
|
4
|
5
|
<tr>
|
定義表格行
|
4
|
5
|
<tt>
|
定義打字機文字
|
4
|
5 |
<u>
|
定義下劃線文字(HTML 5 中不支援)
|
4
|
|
<ul>
|
定義無序列表
|
4
|
5
|
<var>
|
定義變數
|
4
|
5
|
<video>
|
定義視訊
|
5
|
|
<xmp>
|
定義預格式文字(HTML 5 中不支援)
|
4
|
事件屬性
HTML 5 元素可擁有事件屬性,這些屬性在瀏覽器中觸發行為,比如當使用者單擊一個HTML 5元素時啟動一段 JavaScript。下面列出的事件屬性,可以把它們插入 HTML 標籤來定義事件行為。
HTML 5 中的新事件屬性:onabort, onbeforeunload, oncontextmenu, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart, ondrop, onerror, onmessage, onmousewheel, onresize, onscroll, onunload。
4: 指在HTML 4.01 中定義了該元素。
5: 指在HTML 5 中定義了該元素。
HTML 5不再支援的 HTML 4.01 屬性:onreset。
屬性
|
值
|
描述
|
4
|
5
|
---|---|---|---|---|
onabort
|
script
|
發生 abort 事件時執行指令碼。
|
5
|
|
onbeforeonload
|
script
|
在元素載入前執行指令碼。
|
5
|
|
onblur
|
script
|
當元素失去焦點時執行指令碼。
|
4
|
5
|
onchange
|
script
|
當元素改變時執行指令碼。
|
4
|
5
|
onclick
|
script
|
在滑鼠點選時執行指令碼。
|
4
|
5
|
oncontextmenu
|
script
|
當選單被觸發時執行指令碼。
|
5
|
|
ondblclick
|
script
|
當滑鼠雙擊時執行指令碼。
|
4
|
5
|
ondrag
|
script
|
只要指令碼在被拖動就執行指令碼。
|
5
|
|
ondragend
|
script
|
在拖動操作結束時執行指令碼。
|
5
|
|
ondragenter
|
script
|
當元素被拖動到一個合法的放置目標時,執行指令碼。
|
5
|
|
ondragleave
|
script
|
當元素離開合法的放置目標時。
|
5
|
|
ondragover
|
script
|
只要元素正在合法的放置目標上拖動時,就執行指令碼。
|
5
|
|
ondragstart
|
script
|
在拖動操作開始時執行指令碼。
|
5
|
|
ondrop
|
script
|
當元素正在被拖動時執行指令碼。
|
5
|
|
onerror
|
script
|
當元素載入的過程中出現錯誤時執行指令碼。
|
5
|
|
onfocus
|
script
|
當元素獲得焦點時執行指令碼。
|
4
|
5
|
onkeydown
|
script
|
當按鈕按下時執行指令碼。
|
4
|
5
|
onkeypress
|
script
|
當按鍵被按下時執行指令碼。
|
4
|
5
|
onkeyup
|
script
|
當按鈕鬆開時執行指令碼。
|
4
|
5
|
onload
|
script
|
當文件載入時執行指令碼。
|
4
|
5
|
onmessage
|
script
|
當 message 事件觸發時執行指令碼。
|
5
|
|
onmousedown
|
script
|
當滑鼠按鈕按下時執行指令碼。
|
4
|
5
|
onmousemove
|
script
|
當滑鼠指標移動時執行指令碼。
|
4
|
5
|
onmouseover
|
script
|
當滑鼠指標移動到一個元素上時執行指令碼。
|
4
|
5
|
onmouseout
|
script
|
當滑鼠指標移出元素時執行指令碼。
|
4
|
5
|
onmouseup
|
script
|
當滑鼠按鈕鬆開時執行指令碼。
|
4
|
5
|
onmousewheel
|
script
|
當滑鼠滾輪滾動時執行指令碼。
|
5
|
|
onreset
|
script
|
當表單重置時執行指令碼。不支援。
|
4
|
|
onresize
|
script
|
當元素調整大小時執行指令碼。
|
5
|
|
onscroll
|
script
|
當元素滾動條被滾動時執行指令碼。
|
5
|
|
onselect
|
script
|
當元素被選中時執行指令碼。
|
4
|
5
|
onsubmit
|
script
|
當表單提交時執行指令碼。
|
4
|
5
|
onunload
|
script
|
當文件解除安裝時執行指令碼。
|
5
|
標籤屬性
HTML 5標籤擁有屬性。在每個標籤的參考頁中可以找到相應的特殊屬性。這裡列出的屬性是通用於每個標籤的核心屬性和語言屬性(有個別例外)。
4: 指在HTML 4.01 中定義了該元素
5: 指在HTML 5 中定義了該元素
HTML 5標籤中的新屬性有:contenteditable, contextmenu, draggable, irrelevant, ref,registrationmark, template
HTML 5 中不再支援的屬性:accesskey
屬性
|
值
|
描述
|
4
|
5
|
---|---|---|---|---|
acceskey
|
a character
|
設定訪問一個元素的鍵盤快捷鍵。不支援。
|
4
|
|
class
|
class_ruleorstyle_rule
|
元素的類名。
|
4
|
5
|
contenteditable
|
true
false
|
設定是否允許使用者編輯元素。
|
5
|
|
contentextmenu
|
id of a menu element
|
給元素設定一個上下文選單。
|
5
|
|
dir
|
ltr
rtl
|
設定文字方向。
|
4
|
5
|
draggable
|
true
false
auto
|
設定是否允許使用者拖動元素。
|
5
|
|
id
|
id_name
|
元素的唯一 id。
|
4
|
5
|
irrelevant
|
true
false
|
設定元素是否相關。不顯示非相關的元素。
|
5
|
|
lang
|
language_code
|
設定語言碼。
|
4
|
5
|
ref
|
urlorelementID
|
引用另一個文件或文件上另一個位置。僅在 template 屬性設定時使用。
|
5
|
|
registrationmark
|
registration mark
|
為元素設定拍照。可規定於任何 <rule> 元素的後代元素,
除了 <nest> 元素。
|
5
|
|
style
|
style_definition
|
行內的樣式定義。
|
4
|
5
|
tabindex
|
number
|
設定元素的 tab 順序。
|
4
|
5
|
template
|
urlorelementID
|
引用應該應用到該元素的另一個文件或本文件上另一個位置。
|
5
|
|
title
|
tooltip_text
|
顯示在工具提示中的文字。
|
4
|
5
|
HTML5與SEO
一:使搜尋引擎更加容易抓取和索引
對於一些網站,特別是那些嚴重依賴於FLASH的網站HTML5是一個大福音。如果你有一個都是FLASH的站點,你就一定會看到切換到HTML5的 好處。首先,搜尋引擎的蜘蛛將能夠抓取你的站點和索引你的內容。所有嵌入到動畫中的內容將全部可以被搜尋引擎讀取。在搜尋引擎優化的基本理論中,這一方面將會驅動你的網站獲得更多的右擊流量。
二:提供更多的功能,提高使用者的友好體驗
使用HTML5的另一個好處就是它可以增加更多的功能。對於HTML5的功能性問題,我們從全球幾個主流站點對它的青睞就可以看出。社交網路大亨Facebook已經推出他們期待已久的基於HTML5的iPad應用平臺,潘多拉也推出他們基於HTML5的音樂播放器的新版本。遊戲平臺 Zynga也在推出了三款新的在移動裝置瀏覽器上執行的基於HTML5的遊戲等等。每天都有不斷的基於HTML5的網站和HTML5特性的網站被推 出。保持站點處於新技術的前沿,也可以很好的提高使用者的友好體驗。
三:可用性的提高,提高使用者的友好體驗
最後我們可以從可用性的角度上看,HTML5可以更好的促進使用者於網站間的互動情況。多媒體網站可以獲得更多的改進,特別是在移動平臺上的應用,使用 HTML5可以提供更多高質量的視訊和音訊流。到目前為止,事實就是iPhone和iPad將不會支援FLASH,同時ADOBE公司也公開宣告將 停止FLASH基於移動平臺的開發,可以這麼說——移動平臺日後視訊音訊是HTML5的天下!