複製鏈接
請複製以下鏈接發送給好友

HTML5

鎖定
HTML5是構建Web內容的一種語言描述方式。HTML5是互聯網的新一代標準,是構建以及呈現互聯網內容的一種語言方式,被認為是互聯網的核心技術之一。HTML產生於1990年,1997年HTML4成為互聯網標準,並廣泛應用於互聯網應用的開發。
HTML5是Web中核心語言HTML的規範,用户使用任何手段進行網頁瀏覽時看到的內容原本都是HTML格式的,在瀏覽器中通過一些技術處理將其轉換成為了可識別的信息。HTML5在從前HTML4.01的基礎上進行了一定的改進,雖然技術人員在開發過程中可能不會將這些新技術投入應用,但是對於該種技術的新特性,網站開發技術人員是必須要有所瞭解的。 [1-2] 
中文名
超文本5.0
外文名
HTML5.0
支持瀏覽器
IE、火狐等
新元素
article、footer、header等
作    用
構成網頁文檔

HTML5簡介

HTML5 是 HyperText Markup Language 5 的縮寫,HTML5 技術結合了 HTML4.01 的相關標準並革新,符合現代網絡發展要求,在 2008 年正式發佈。HTML5 由不同的技術構成,其在互聯網中得到了非常廣泛的應用,提供更多增強網絡應用的標準機。與傳統的技術相比,HTML5 的語法特徵更加明顯,並且結合了 SVG 的內容。這些內容在網頁中使用可以更加便捷地處理多媒體內容,而且 HTML5中還結合了其他元素,對原有的功能進行調整和修改,進行標準化工作。HTML5 在 2012 年已形成了穩定的版本。2014年10月28日,W3C發佈了HTML5的最終版。 [3] 

HTML5發展歷程

HTML5之前的發展歷程

在前五年(1990-1995),HTML經歷了多次修訂並經歷了許多擴展,主要是在歐洲核子研究中心首先託管,然後是IETF [2] 
隨着W3C的創建,HTML的發展再次改變了場地。 1995年第一次嘗試在HTML 3.0中擴展HTML,然後在1997年完成了一種稱為HTML 3.2的更實用的方法。同一年晚些時候,HTML 4.01很快就出現了。
第二年,W3C成員決定停止發展HTML,而是開始研究基於XML的等價物,稱為XHTML。這項工作始於XML中的HTML 4.01重新編寫,稱為XHTML 1.0,除了新的序列化之外沒有添加任何新功能,並且在2000年完成。在XHTML 1.0之後,W3C的重點轉向使其他工作組更容易在XHTML模塊化的旗幟下擴展XHTML。與此同時,W3C還開發了一種與早期HTML和XHTML語言不兼容的新語言,稱之為XHTML 2.0。
大約在1998年停止HTML演變的時候,瀏覽器供應商開發的HTML部分API被命名並以DOM Level 1((1998年)和DOM Level 2 Core和DOM Level 2 HTML(從2000年開始)發佈。最終於2003年)。這些努力隨後逐漸消失,2004年發佈了一些DOM Level 3規範,但工作組在所有3級草案完成之前就已關閉。
2003年,作為下一代Web表單定位的技術XForms的出版引發了對HTML本身發展的新興趣,而不是尋找它的替代品。這種興趣來自於認識到XML作為Web技術的部署僅限於全新技術(如RSS和後來的Atom),而不是替代現有的已部署技術(如HTML)。
一個概念證明,可以擴展HTML 4.01的表單,提供XForms 1.0引入的許多功能,而不需要瀏覽器實現與現有HTML網頁不兼容的渲染引擎,這是第一個結果。重新興趣。在早期階段,雖然草案已經公開發布,並且已經從所有來源徵求意見,但該規範僅受Opera Software的版權保護
在2004年的W3C研討會上測試了HTML應該重新開放的想法,其中提出了HTML工作的一些原則(如下所述),以及上述早期草案提案,僅涉及與表單相關的功能,由Mozilla和Opera聯合推出的W3C。該提案被駁回,理由是該提案與之前選擇的網絡發展方向相沖突; W3C的工作人員和成員投票決定繼續開發基於XML的替代品。

HTML5發展H5

此後不久,Apple,Mozilla和Opera聯合宣佈他們打算在一個名為WHATWG的新場地的保護下繼續努力。創建了一個公共郵件列表,草案已移至WHATWG站點。隨後將版權修改為由所有三個供應商共同擁有,並允許重複使用該規範。
WHATWG基於幾個核心原則,特別是技術需要向後兼容,規範和實現需要匹配,即使這意味着更改規範而不是實現,並且規範需要足夠詳細,實現可以實現完整的互操作性,無需相互逆向工程。後一要求特別要求HTML規範的範圍包括先前在三個單獨的文檔中指定的內容:HTML 4.01,XHTML 1.1和DOM Level 2 HTML。它還意味着包含比以前被認為是標準更多的細節。
2006年,W3C表示有興趣參與HTML 5.0的開發,並於2007年組建了一個工作組,專門與WHATWG合作開發HTML規範。 Apple,Mozilla和Opera允許W3C在W3C版權下發布規範,同時保留WHATWG網站上限制較少的許可版本。多年來,兩個小組在同一編輯下共同工作:Ian Hickson。在2011年,小組得出的結論是,他們有不同的目標:W3C希望為HTML 5.0推薦的功能劃清界限,而WHATWG希望繼續致力於HTML的生活標準,不斷維護規範和添加新功能。 2012年中期,W3C推出了一個新的編輯團隊,負責創建HTML 5.0推薦標準,併為下一個HTML版本準備工作草案。
2014年10月28日,HTML5作為穩定W3C推薦標準發佈。 [9] 
2015年1月,YouTube徹底拋棄了Flash,實現向HTML5的全面過渡。隨後,各個網站都開始從Flash轉向HTML5。 [9] 

HTML5共同開發H5

2019年5月23日,W3C 與 WHATWG 就共同開發 HTML 與 DOM 規範達成協議,W3C組織重新成立html工作組。 [11] 

HTML5新特性

HTML5將Web帶入一個成熟的應用平台,在這個平台上,視頻、音頻、圖像、動畫以及與設備的交互都進行了規範。 [4] 

HTML5智能表單

圖2 HTML5 圖2 HTML5
表單是實現用户與頁面後台交互主要組成部分,HTML5在表單的設計上功能更加強大。input類型和屬性的多樣性大大地增強了HTML可表達的表單形式,再加上新增加的一些表單標籤,使得原本需要JavaScript來實現的控件,可以直接使用HTML5的表單來實現;一些如內容提示、焦點處理、數據驗證等功能,也可以通過HTML5的智能表單屬性標籤來完成。 [5] 

HTML5繪圖畫布

HTML5的canvas元素可以實現畫布功能,該元素通過自帶的API結合使用JavaScript腳本語言在網頁上繪製圖形和處理,擁有實現繪製線條、弧線以及矩形,用樣式和顏色填充區域,書寫樣式化文本,以及添加圖像的方法,且使用JavaScript可以控制其每一個像素。HTML5的canvas元素使得瀏覽器無需Flash或Silverlight等插件就能直接顯示圖形或動畫圖像。 [5] 

HTML5多媒體

HTML5最大特色之一就是支持音頻視頻,在通過增加了<audio>、<video>兩個標籤來實現對多媒體中的音頻、視頻使用的支持,只要在Web網頁中嵌入這兩個標籤,而無需第三方插件(如Flash)就可以實現音視頻的播放功能。HTML5對音頻、視頻文件的支持使得瀏覽器擺脱了對插件的依賴,加快了頁面的加載速度,擴展了互聯網多媒體技術的發展空間。 [5] 

HTML5地理定位

現今移動網絡備受歡迎,用户對實時定位的應用越來越多,要求也越來越高。HTML5通過引入Geolocation的API可以通過GPS網絡信息實現用户的定位功能,定位更加準確、靈活。通過HTML5進行定位,除了可以定位自己的位置,還可以在他人對自己的開放信息的情況下獲得他人的定位信息。 [5] 

HTML5數據存儲

HTML5較之傳統的數據存儲有自已的存儲方式,允許在客户端實現較大規模的數據存儲。為了滿足不同的需求,HTML5支持DOM Storage和Web SQL Database 兩種存儲機制。其中,DOM Storage 適用於具有key/value對的基本本地存儲;而WebSQLDatabase是適用於關係型數據庫的存儲方式,開發者可以使用SQL語法對這些數據進行查詢、插入等操作。 [5] 

HTML5多線程

HTML5利用Web Worker將Web應用程序從原來的單線程業界中解放出來,通過創建一個Web Worker對象就可以實現多線程操作。JavaScript創建的Web程序處理事務都是在單線程中執行,響應時間較長,而當JavaScript過於複雜時,還有可能出現死鎖的局面。HTML5新增加了一個WebWorkerAPI,用户可以創建多個在後台的線程,將耗費較長時間的處理交給後台面不影響用户界面響應速度,這些處理不會因用户交互而運行中斷。使用後台線程不能訪問頁面和窗口對象,但後台線程可以和頁面之間進行數據交互。子線程與子線程之間的數據交互,大致步驟如下:①先創建發送數據的子線程;②執行子線程任務,把要傳遞的數據發送主線程;③在主線程接受到子線程傳遞迴的消息時創建接收數據的子線程,然後把發送數據的子線程中返回的消息傳遞給接收數據的子線程;④執行接收數據子線程中的代碼。 [5] 

HTML5新元素

自1999年以後HTML 4.01 已經改變了很多,在HTML 4.01中的幾個元素已經被廢棄,這些元素在HTML5中已經被刪除或重新定義。 [2] 
為了更好地處理迄今為止的互聯網應用,HTML5添加了很多新元素及功能,比如: 圖形的繪製,多媒體內容,更好的頁面結構,更好的形式 處理,和幾個api拖放元素,定位,包括網頁 應用程序緩存,存儲,網絡工作者,等。 [2] 

HTML5canvas

標籤
描述
標籤定義圖形,比如圖表和其他圖像。該標籤基於 JavaScript 的繪圖 API

HTML5多媒體標籤

標籤
描述
定義音頻內容
定義視頻(video 或者 movie)
定義多媒體資源 <video> 和 <audio>
定義嵌入的內容,比如插件。
為諸如 <video> 和 <audio> 元素之類的媒介規定外部文本軌道。

HTML5表單

標籤
描述
定義選項列表。請與 input 元素配合使用該元素,來定義 input 可能的值。
規定用於表單的密鑰對生成器字段。
定義不同類型的輸出,比如腳本的輸出。

HTML5語義和結構

HTML5提供了新的元素來創建更好的頁面結構:
標籤
描述
定義頁面獨立的內容區域。
定義頁面的側邊欄內容。
允許您設置一段文本,使其脱離其父元素的文本方向設置。
定義命令按鈕,比如單選按鈕、複選框或按鈕
用於描述文檔或文檔某個部分的細節
定義對話框,比如提示框
標籤包含 details 元素的標題
規定獨立的流內容(圖像、圖表、照片、代碼等等)。
定義 <figure> 元素的標題
定義 section 或 document 的頁腳。
定義了文檔的頭部區域
定義帶有記號的文本。
定義度量衡。僅用於已知最大和最小值的度量。
定義導航鏈接的部分。 [10] 
定義任何類型的任務的進度。
定義 ruby 註釋(中文注音或字符)。
定義字符(中文注音或字符)的解釋或發音。
在 ruby 註釋中使用,定義不支持 ruby 元素的瀏覽器所顯示的內容。
定義文檔中的節(section、區段)。
定義日期或時間。
規定在文本中的何處適合添加換行符。

HTML5已移除元素

以下的 HTML 4.01 元素在HTML5中已經被刪除:
  • <acronym>
  • <applet>
  • <basefont>
  • <big>
  • <center>
  • <dir>
  • <font>
  • <frame>
  • <frameset>
  • <noframes>
  • <strike>

HTML5優缺點

HTML5優點

新一代網絡標準能夠讓程序通過Web瀏覽器,消費者從而能夠從包括個人電腦筆記本電腦智能手機平板電腦在內的任意終端訪問相同的程序和基於雲端的信息。HTML5允許程序通過Web瀏覽器運行,並且將視頻等迄今為止需要插件和其它平台才能使用的多媒體內容也納入其中,這將使瀏覽器成為一種通用的平台,用户通過瀏覽器就能完成任務。此外,消費者還可以訪問以遠程方式存儲在“雲”中的各種內容,不受位置和設備的限制。 [6]  由於HTML5技術中存在較為先進的本地存儲技術,所以其能做到降低應用程序的響應時間為用户帶來更便捷的體驗。 [1] 

HTML5缺點

(1)開放性帶來的困擾
在從前網絡平台上存在大量的專利產品,想要實現HTML5技術的大量應用首先就需要將這些專利性的產品變為開放式的產品,由於各種原因,當前面對這一問題還存在許多爭議。以視頻格式為例,兩大陣營對於視頻格式的設置存在爭議,一大陣營以蘋果為代表,另一大陣營則以Opera、火狐、谷歌為代表。WPEG陣營是蘋果所屬陣營,由於其自身全部使用的是這一種格式,所以堅持認為應當將此格式作為標準,而WebM陣營則認為由於WPEG格式的專利依然沒有解除,對於HTML5技術要求的開放性沒有達標,所以不同意將其作為標準格式。 [1] 
(2)發展的速度有待提升
在HTML5中提出了一些從前HTML技術中不具有的新技術,但是有許多主流瀏覽器在長時間的發展過程中已經完成了此種技術的開發,在自身瀏覽器中實現了此種功能,就這一情況來説HTML5的發展速度方面存在一定的問題。同時由於HTML5的不成熟,當前關於HTML5的相關技術標準還沒有完全確定,所以在短時間想要將其投入大規模應用還比較困難。 [1] 
(3)技術手段的不完善

HTML5技術要點

以下將對HTML5的技術要點進行介紹: [2] 

HTML5重要標記

<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>

HTML5程序接口

除了原先的DOM接口,HTML5增加了更多API,如:
1. 用於即時2D繪圖的Canvas標籤
2. 定時媒體回放
3. 離線數據庫存儲
4.文檔編輯
5. 拖拽控制
6. 瀏覽歷史管理

HTML5元素變化

新的解析順序新的元素:section, video, progress, nav, meter, time, aside, canvasinput
元素的新屬性:日期和時間,email, url。
新的通用屬性:ping, charset, async
全域屬性:id, tabindex, repeat。
移除元素:center, font, strike。

HTML5標籤變化

按字母順序排列的標籤列表
標籤
描述
4:指在HTML 4.01 中定義了該元素
5:指在HTML 5 中定義了該元素
<!--...-->
定義註釋
4
5
定義文檔類型
4
5
<a>
定義超鏈接
4
5
<abbr>
定義縮寫
4
5
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
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
-
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標籤中的新屬性有:contenteditable, contextmenu, draggable, irrelevant, ref,registrationmark, template
HTML 5 中不再支持的屬性:accesskey

HTML5事件屬性

HTML 5 元素可擁有事件屬性,這些屬性在瀏覽器中觸發行為,比如當用户單擊一個HTML 5元素時啓動一段 JavaScript。下面列出的事件屬性,可以把它們插入 HTML 標籤來定義事件行為。
HTML 5 中的新事件屬性:onabort, onbeforeunload, oncontextmenu, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart, ondrop, onerror, onmessage, onmousewheel, onresize, onscroll, onunload。
HTML 5不再支持的 HTML 4.01 屬性:onreset。

HTML5異常處理

HTML 5(text/html)瀏覽器將在錯誤語法的處理上更加靈活。HTML 5在設計時保證舊的瀏覽器能夠安全的忽略掉新的HTML 5代碼。與HTML 4.01相比,HTML 5給出瞭解析的詳細規則,力圖讓不同的瀏覽器即使在發生語法錯誤時也能返回相同的結果。

HTML5發展趨勢

隨着計算機技術不斷髮展,可以看到HTML5在未來的幾年內的發展將會是一個井噴式的增長。HTML5技術在未來幾年內發展將會以以下幾個形式表現: [7] 
1.HTML5技術的移動端方向。HTML5技術在未來主要發展的市場還是在移動端互聯網領域,現階段移動瀏覽器有應用體驗不佳、網頁標準不統一的劣勢,這兩個方面是移動端網頁發展的障礙,而HTML5技術能夠解決這兩個問題,並且將劣勢轉化為優勢,整體推動整個移動端網頁方面的發展; [7] 
2.Web內核標準提升。迄今為止移動端網頁內核大多采用Web內核,相信在未來幾年內隨着智能端逐漸普及,HTML5在Web內核方面應用將會得到極大的凸顯; [7] 
3.提升Web操作體驗。隨着硬件能力的提升、WebGL標準化的普及以及手機頁遊的逐漸成熟,手機頁遊向3D化發展是大勢所趨; [7] 
4.網絡營銷遊戲化發展。通過一些遊戲化、場景化以及跨屏互動等環節,不僅增加用户遊戲體驗,還能夠滿足廣告主大部分的營銷需求,在推銷產品的過程中,讓用户體驗遊戲的樂趣;
5.移動視頻、在線直播。HTML5將會改變視頻數據傳輸方式,讓視頻播放更加流暢,與此同時,視頻還能夠與網頁相結合,讓用户看視頻如看圖片一樣輕鬆。 [7] 
6.虎牙直播一直通過優質的直播技術來提高用户的留存度。在播放技術上,虎牙直播推出1080P高清碼率畫質,隨後又啓用HTML5直播技術,用户可享受“1秒即開看直播”的暢快體驗。此後,虎牙直播推出了藍光畫質,在視頻畫面的清晰度方面處於優勢。 [8] 
參考資料
展開全部 收起