<!DOCTYPE html> <html lang='en'> <head> <meta charset="UTF-8" /> <title>Document</title> </head> <body> </body> </html>
<nav> 表示導航 <header> 表示頁眉 <footer> 表示頁腳 <section> 表示區塊 <article> 表示文章 如文章、評論、帖子、博客 <aside> 表示側邊欄 如文章的側欄 <figure> 表示媒介內容分組 與 ul > li 作個比較 //下列標籤不經常使用 <mark> 表示標記 (帶用「UI」,不怎麼用,能夠重寫樣式) <progress> 表示進度 (帶用「UI」,不怎麼用,不可重寫樣式) <time> 表示日期 <hgroup> 標題列表 (聽說已廢棄) <details> <bdi> <command> <summary> <rp> <rt> <ruby>
新語義標籤只是具備表意性,除了使用時須要注意下HTML結構外,其餘和普通標籤沒什麼區別。php
在不支持HTML5新標籤的瀏覽器裏,會將這些新的標籤解析成行內元素(inline)對待,因此咱們只須要將其轉換成塊元素(block)便可使用,可是在IE9版本如下,並不能正常解析這些新標籤,可是卻能夠識別經過document.createElement('tagName')建立的自定義標籤,因而咱們的解決方案就是將HTML5的新標籤所有經過document.createElement('tagName')來建立一遍,這樣IE低版本也能正常解析HTML5新標籤了,在實際開發中咱們更多采用的是經過檢測IE瀏覽器的版原本加載第三方的一個JS庫(html5shiv.js)來解決兼容問題。css
<!--[if lte IE 8]> <script src="./js/htmml5shiv.min.js"></script> <![endif]-->
新增的表單特性,在PC和移動設備之間差別大,兼容性較差html
email 輸入email格式 tel 手機號碼 url 只能輸入url格式 number 只能輸入數字 search 搜索框 range 範圍 color 拾色器 time 時間 date 日期 不是絕對的 datetime 時間日期 month 月份 week 星期
部分類型是針對移動設備生效的,且具備必定的兼容性問題,在實際開發中可選擇性使用。html5
<datalist> 下拉選項,使用中文時要注意 <keygen> 生成加密字符串 <output> 不可當作數據提交? <meter> 表示度量器,不建議用做進度條
placeholder 佔位符 autofocus 獲取焦點 multiple 文件上傳多選或多個郵箱地址 autocomplete 自動完成,用於form元素,也可用於部分input,默認值on form 指定表單項屬於哪一個form,處理複雜表單時會須要 novalidate 關閉驗證,可用於<form>標籤,(只適應用form) required 驗證條件,必填項 pattern 正則表達式 自定義驗證規則 //表單重寫 //應用於提交按鈕上,如:<input type="submit" formaction="xxx.php"> formaction、formenctype、formtarget、formmethod、formnovalidate
oninput 用戶輸入內容時觸發,可用於移動端輸入字數統計 onincalid 驗證不經過時觸發
h5以前,網頁上的音頻/視頻可能是利用Flash來播放的,但並不是全部用戶的瀏覽器都安裝了Flash插件,由此使得處理音頻/視頻播放變的很複雜,而且移動設備的瀏覽器不支持Flash。node
<audio src="xx.mp3"></audio>
屬性:web
autoplay 自動播放 controls 是否顯示默認的播放控件 loop 循環播放 preload 預加載 同時設置autoplay時此屬性失效
因爲版權限制,不一樣瀏覽器支持的播放格式不一樣,須要進行兼容性處理:正則表達式
<audio controls> <source src="xx.mp3"> <source src="xx.wav"> <source src="xx.ogg"> 您的瀏覽器不支持HTML音頻播放功能 </audio>
<video>
標籤<audio>
標籤使用一致width,height
設置播放窗口的寬高document.getElementsByClassName(className)
經過類名獲取元素,返回一個僞數組document.querySelector(selector)
經過css選擇器獲取元素,返回符合條件的第一個dom元素document.querySelectorAll(selector)
經過css選擇器獲取元素,返回一個僞數組<div data-name="name" data-gender="female"><div>
node.dataset["name"]
能夠獲取到自定義屬性的值node.dataset["myName"]
ondrag 整個拖拽過程都會調用 ondragstart 拖拽開始是調用 ondragleave 當鼠標離開拖拽元素時調用(拖拽出拖拽元素的基礎位置時) ondragend 拖拽結束時調用
2.目標元素的事件chrome
ondragenter 拖拽元素進入時調用 ondragover 拖拽元素停留在目標元素上時調用 ondragleave 拖拽元素離開目標元素時調用 ondrop 在目標元素上鬆開鼠標時調用
ev.dataTransfer.setData() 設置數據 ev.dataTransfer.getData() 獲取數據
window.history對象,能夠管理歷史記錄,可用於單頁面應用,能夠無刷新改變網頁內容。api
history.back() 回退 history.forward() 前進 history.go(n) 前進/後退n步,正值前進,負值後退 history.length 歷史記錄條數
//追加一條歷史記錄 //通常data設置爲null,titile設置爲空,url爲以當前域爲基礎增長一條歷史記錄,不可跨域設置。 pushState(data,title,url) //用法與pushState()基本相同,此方法替換當前url,不會改變歷史記錄條數 replaceState(data,title,url)
onpopstate事件:前進或者後退時觸發,經過事件對象ev.state能夠讀取到存儲的數據,監聽者給window跨域
基於位置服務(Location Base Service)
下圖對各類不一樣獲取方式的優缺點作了比較,瀏覽器會自動以最優的方式去獲取用戶地理信息
HTML5中Geolocation規範提供了保護用戶隱私的機制,必須先獲得用戶明確的許可,才能獲取用戶的位置信息.
navigator.geolocation.getCurrentPosition(successCallback,errorCallback,options)獲取當前地理信息
navigator.geolocation.watchPosition(successCallback,errorCallback,options)重複獲取當前地理信息
爲了知足各類需求,會常常性的須要在本地存儲大量的數據,傳統方式使用document.cookie進行存儲,但cookie存儲大小隻有4k左右,而且解析相對複雜.HTML5提出了sessionStorage和localStorage來存儲本地數據.
規範容許全部元素均可以全屏,但實際測試結果關閉全屏功能只能添加到document元素上
requestFullScreen() 開啓全屏顯示 cancelFullScreen() 關閉全屏顯示
webkitRequestFullScreen、mozRequestFullScreen webkitCancelFullScreen、mozCancelFullScreen
document.fullScreen //不一樣瀏覽器須要添加前綴 document.webkitIsFullScreen document.mozFullScreen
給window綁定事件
window.navigator.onLine在用戶網絡鏈接時調用,返回布爾值
window.navigator.offLine在用戶網絡斷開時調用
建立一個cache manifest文件構建一個離線應用
CACHE MANIFEST CACHE: #此部分寫須要緩存的資源 (#是註釋的意思) ./images/img1.jpg ./images/img2.jpg ./images/img3.jpg ./images/img4.jpg ./images/img5.jpg NETWORK: #此部分要寫須要有網絡纔可訪問的資源,無網絡則不訪問 #./js/main.js * FALLBACK: #當訪問不到某個資源的狀況下,自動由另外一個資源替換 ./css/online.css ./css/offline.css ./online.html ./offline.html
經過FileReader對象能夠讀取本地存儲的文件,可使用File對象來指定所要讀取的文件或數據,其中File對象能夠來自用戶在一個<input>
元素上選擇文件後返回的FileList對象,也能夠來自自由拖放操做生成的DataTransfer.
因爲HTML5中能夠爲表單添加multiple屬性,所以經過<input>
上傳文件後獲得一個FileList對象(僞數組).
HTML5新增內置對象,能夠實例化一個對象
還有許多其餘方法,在應用時能夠去MDN上查看