爲了更好地處理今天的互聯網應用,HTML5添加了不少新元素及功能,好比: 圖形的繪製,多媒體內容,更好的頁面結構,更好的形式 處理,和幾個api拖放元素,定位,包括網頁 應用程序緩存,存儲,網絡工做者等web
一、語義標籤化正則表達式
語義化標籤使得頁面的內容結構化,見名知義canvas
標籤 | 描述 |
<hrader></header> | 定義了文檔的頭部區域 |
<footer></footer> | 定義了文檔的尾部區域 |
<nav></nav> | 定義文檔的導航 |
<section></section> | 定義文檔中的節(section、區段) |
<article></article> | 定義頁面獨立的內容區域 |
<aside></aside> | 定義頁面的側邊欄內容 |
<detailes></detailes> | 用於描述文檔或文檔某個部分的細節 |
<summary></summary> | 標籤包含 details 元素的標題 |
<dialog></dialog> | 定義對話框,好比提示框 |
二、加強型表單api
HTML5 擁有多個新的表單 Input 輸入類型。這些新特性提供了更好的輸入控制和驗證瀏覽器
輸入類型緩存 |
描述 |
color安全 |
主要用於選取顏色 |
date服務器 |
從一個日期選擇器選擇一個日期 |
datetimecookie |
選擇一個日期(UTC 時間) |
datetime-local網絡 |
選擇一個日期和時間 (無時區) |
|
包含 e-mail 地址的輸入域 |
month |
選擇一個月份 |
number |
數值的輸入域 |
range |
必定範圍內數字值的輸入域 |
search |
用於搜索域 |
tel |
定義輸入電話號碼字段 |
time |
選擇一個時間 |
url |
URL 地址的輸入域 |
week |
選擇周和年 |
HTML5 新增的表單屬性
placehoder 屬性,簡短的提示在用戶輸入值前會顯示在輸入域上。即咱們常見的輸入框默認提示,在用戶輸入後消失。
required 屬性,是一個 boolean 屬性。要求填寫的輸入域不能爲空
pattern 屬性,描述了一個正則表達式用於驗證<input> 元素的值。
min 和 max 屬性,設置元素最小值與最大值。
step 屬性,爲輸入域規定合法的數字間隔。
height 和 width 屬性,用於 image 類型的 <input> 標籤的圖像高度和寬度。
autofocus 屬性,是一個 boolean 屬性。規定在頁面加載時,域自動地得到焦點。
multiple 屬性 ,是一個 boolean 屬性。規定<input> 元素中可選擇多個值
三、視頻和音頻
HTML5 提供了播放音頻文件的標準,即便用 <audio> 元素
<audio controls> <source src="horse.ogg" type="audio/ogg"> <source src="horse.mp3" type="audio/mpeg"> 您的瀏覽器不支持 audio 元素。 </audio>
control 屬性供添加播放、暫停和音量控件。
在<audio> 與 </audio> 之間你須要插入瀏覽器不支持的<audio>元素的提示文本 。
<audio> 元素容許使用多個 <source> 元素. <source> 元素能夠連接不一樣的音頻文件,瀏覽器將使用第一個支持的音頻文件
目前, <audio>元素支持三種音頻格式文件: MP3, Wav, 和 Ogg
HTML5 規定了一種經過 video 元素來包含視頻的標準方法
<video width="320" height="240" controls> <source src="movie.mp4" type="video/mp4"> <source src="movie.ogg" type="video/ogg"> 您的瀏覽器不支持Video標籤。 </video>
control 提供了 播放、暫停和音量控件來控制視頻。也可使用dom操做來控制視頻的播放暫停,如 play() 和 pause() 方法。
同時 video 元素也提供了 width 和 height 屬性控制視頻的尺寸.若是設置的高度和寬度,所需的視頻空間會在頁面加載時保留。若是沒有設置這些屬性,瀏覽器不知道大小的視頻,瀏覽器就不能再加載時保留特定的空間,頁面就會根據原始視頻的大小而改變。
與 標籤之間插入的內容是提供給不支持 video 元素的瀏覽器顯示的。
video 元素支持多個source 元素. 元素能夠連接不一樣的視頻文件。瀏覽器將使用第一個可識別的格式( MP4, WebM, 和 Ogg)
四、Canvas繪圖
SVG 是一種使用 XML 描述 2D 圖形的語言。
Canvas 經過 JavaScript 來繪製 2D 圖形。
SVG 基於 XML,這意味着 SVG DOM 中的每一個元素都是可用的。您能夠爲某個元素附加 JavaScript 事件處理器。
在 SVG 中,每一個被繪製的圖形均被視爲對象。若是 SVG 對象的屬性發生變化,那麼瀏覽器可以自動重現圖形。
Canvas 是逐像素進行渲染的。在 canvas 中,一旦圖形被繪製完成,它就不會繼續獲得瀏覽器的關注。若是其位置發生變化,那麼整個場景也須要從新繪製,包括任何或許已被圖形覆蓋的對象。
五、地理位置
HTML5 Geolocation(地理定位)用於定位用戶的位置。
window.navigator.geolocation {
getCurrentPosition: fn 用於獲取當前的位置數據
watchPosition: fn 監視用戶位置的改變
clearWatch: fn 清除定位監視
}
六、拖放API
拖放是一種常見的特性,即抓取對象之後拖到另外一個位置。在 HTML5 中,拖放是標準的一部分,任何元素都可以拖放。
拖放的源對象(可能發生移動的)能夠觸發的事件——3個:
dragstart:拖動開始
drag:拖動中
dragend:拖動結束
整個拖動過程的組成: dragstart*1 + drag*n + dragend*1
拖放的目標對象(不會發生移動)能夠觸發的事件——4個:
dragenter:拖動着進入
dragover:拖動着懸停
dragleave:拖動着離開
drop:釋放
整個拖動過程的組成1: dragenter*1 + dragover*n + dragleave*1
整個拖動過程的組成2: dragenter*1 + dragover*n + drop*1
拖放的過程分爲源對象和目標對象。源對象是指你即將拖動元素,而目標對象則是指拖動以後要放置的目標位置
七、Web Worker
八、Web Storage
使用HTML5能夠在本地存儲用戶的瀏覽數據。早些時候,本地存儲使用的是cookies。可是Web 存儲須要更加的安全與快速. 這些數據不會被保存在服務器上,可是這些數據只用於用戶請求網站數據上.它也能夠存儲大量的數據,而不影響網站的性能。數據以 鍵/值 對存在, web網頁的數據只容許該網頁訪問使用。
客戶端存儲數據的兩個對象爲:
localStorage - 沒有時間限制的數據存儲
sessionStorage - 針對一個 session 的數據存儲, 當用戶關閉瀏覽器窗口後,數據會被刪除。
在使用 web 存儲前,應檢查瀏覽器是否支持 localStorage 和sessionStorage