1.語義化標(biāo)簽:
標(biāo)簽
描述
header
定義了文檔的頭部區(qū)域
nav
定義導(dǎo)航鏈接的部分
section
定義文檔中的節(jié)唬格,比如章節(jié)歧沪、頁眉、頁腳或文檔中的其他部分
article
定義一個(gè)文章區(qū)域
aside
定義頁面的側(cè)邊欄內(nèi)容
footer
定義 section 或 document 的頁腳
details
用于描述文檔或文檔某個(gè)部分的細(xì)節(jié)
dialog
定義對(duì)話框筒繁,比如提示框
summary
包含 details 元素的標(biāo)題款慨,"details" 元素用于描述有關(guān)文檔或文檔片段的詳細(xì)信息
figure
規(guī)定獨(dú)立的流內(nèi)容(圖像挫以、圖表眼姐、照片、代碼等等)佩番。
figcation
定義<figure> 元素的標(biāo)題
2.新增表單input輸入類型:這些新特性更好地提供了輸入控制和驗(yàn)證众旗。
輸入類型
描述
color
定義拾色器。
date
定義 date 控件(包括年趟畏、月贡歧、日,不包括時(shí)間)赋秀。
datetime
定義 date 和 time 控件(包括年利朵、月、日猎莲、時(shí)绍弟、分、秒著洼、幾分之一秒樟遣,基于 UTC 時(shí)區(qū))。
datetime-local
定義 date 和 time 控件(包括年郭脂、月年碘、日、時(shí)展鸡、分屿衅、秒、幾分之一秒莹弊,不帶時(shí)區(qū))涤久。
email
定義用于 e-mail 地址的字段。
month
定義 month 和 year 控件(不帶時(shí)區(qū))忍弛。
number
定義用于輸入數(shù)字的字段响迂。
range
定義用于精確值不重要的輸入數(shù)字的控件(比如 slider 控件)。
search
定義用于輸入搜索字符串的文本字段细疚。
tel
定義用于輸入電話號(hào)碼的字段蔗彤。
time
定義用于輸入時(shí)間的控件(不帶時(shí)區(qū))。
url
定義用于輸入 URL 的字段疯兼。
week
定義 week 和 year 控件(不帶時(shí)區(qū))然遏。
3.新增表單元素:
表單元素
描述
datalist
規(guī)定了 <input> 元素可能的選項(xiàng)列表。
keygen
規(guī)定用于表單的密鑰對(duì)生成器字段吧彪。
output
作為計(jì)算結(jié)果輸出顯示(比如執(zhí)行腳本的輸出)待侵。
4.新增表單屬性:
表單屬性
描述
autocomplete
規(guī)定 <input> 元素輸入字段是否應(yīng)該啟用自動(dòng)完成功能。
autofocus
規(guī)定當(dāng)頁面加載時(shí) <input> 元素應(yīng)該自動(dòng)獲得焦點(diǎn)姨裸。
form
規(guī)定 <input> 元素所屬的一個(gè)或多個(gè)表單秧倾。
formaction
規(guī)定當(dāng)表單提交時(shí)處理輸入控件的文件的 URL怨酝。(只針對(duì) type="submit" 和 type="image")
placeholder
規(guī)定可描述輸入 <input> 字段預(yù)期值的簡(jiǎn)短的提示信息 。
required
規(guī)定必需在提交表單之前填寫輸入字段那先。
pattern
規(guī)定用于驗(yàn)證 <input> 元素的值的正則表達(dá)式农猬。
multiple
規(guī)定允許用戶輸入到 <input> 元素的多個(gè)值。
min
規(guī)定 <input>元素的最小值胃榕。
max
規(guī)定 <input> 元素的最大值盛险。
height
規(guī)定 <input>元素的高度。(只針對(duì)type="image")勋又。
width
規(guī)定 <input> 元素的寬度苦掘。 (只針對(duì)type="image")。
step
規(guī)定 <input> 元素的合法數(shù)字間隔楔壤。
5.音頻和視頻:
音頻:audio
定義聲音鹤啡,比如音樂或其他音頻流。
支持Mp3,Wav,Ogg三種格式
屬性
描述
autoplay
如果出現(xiàn)該屬性蹲嚣,則音頻在就緒后馬上播放递瑰。
controls
如果出現(xiàn)該屬性,則向用戶顯示音頻控件(比如播放/暫停按鈕)隙畜。
loop
如果出現(xiàn)該屬性抖部,則每當(dāng)音頻結(jié)束時(shí)重新開始播放。
muted
如果出現(xiàn)該屬性议惰,則音頻輸出為靜音慎颗。
preload
規(guī)定當(dāng)網(wǎng)頁加載時(shí),音頻是否默認(rèn)被加載以及如何被加載言询。
src
規(guī)定音頻文件的 URL俯萎。
視頻:video
定義視頻,比如電影片段或其他視頻流运杭。
支持MP4,WebM,Ogg三種格式
屬性
描述
autoplay
如果出現(xiàn)該屬性夫啊,則視頻在就緒后馬上播放。
controls
如果出現(xiàn)該屬性辆憔,則向用戶顯示控件撇眯,比如播放按鈕。
height
設(shè)置視頻播放器的高度虱咧。
loop
如果出現(xiàn)該屬性熊榛,則當(dāng)媒介文件完成播放后再次開始播放。
muted
如果出現(xiàn)該屬性彤钟,則音頻輸出為靜音来候。
poster
規(guī)定視頻正在下載時(shí)顯示的圖像跷叉,直到用戶點(diǎn)擊播放按鈕逸雹。
preload
如果出現(xiàn)該屬性营搅,則視頻在頁面加載時(shí)進(jìn)行加載,并預(yù)備播放梆砸。如果使用 "autoplay"转质,則忽略該屬性。
src
要播放的視頻的 URL帖世。
width
設(shè)置視頻播放器的寬度休蟹。
6.Canvas:
通過腳本(通常是 JavaScript)來繪制圖形(比如圖表和其他圖像)。但該標(biāo)簽只是圖形容器日矫,必須使用腳本來繪制圖形赂弓。
屬性
描述
height
規(guī)定畫布的高度。
width
規(guī)定畫布的寬度哪轿。
7.SVG 與 Canvas
SVG是指可伸縮矢量圖形(Scalable Verctor Graphics),是一種基于XML語法的圖像格式盈魁。其他圖像格式都是基于像素處理的,SVG則是屬于對(duì)圖像的形狀描述窃诉,所以SVG本質(zhì)上是文本文件杨耙,體積較小,并且不管放大多少倍都不會(huì)失真飘痛。
SVG:
SVG 是一種使用 XML 描述 2D 圖形的語言珊膜。
SVG 基于 XML,這意味著 SVG DOM 中的每個(gè)元素都是可用的宣脉。你可以為某個(gè)元素附加 JavaScript 事件處理器车柠。
在 SVG 中,每個(gè)被繪制的圖形均被視為對(duì)象脖旱。如果 SVG 對(duì)象的屬性發(fā)生變化堪遂,那么瀏覽器能夠自動(dòng)重現(xiàn)圖形。
Canvas:
Canvas 是逐像素進(jìn)行渲染的萌庆。在 canvas 中溶褪,一旦圖形被繪制完成,它就不會(huì)繼續(xù)得到瀏覽器的關(guān)注践险。如果其位置發(fā)生變化猿妈,那么整個(gè)場(chǎng)景也需要重新繪制,包括任何或許已被圖形覆蓋的對(duì)象巍虫。
Canvas 和 SVG的區(qū)別
Canvas
依賴分辨率
不支持事件處理器
弱的文本渲染能力
能夠以 .png 或 .jpg 格式保存結(jié)果圖像
最適合圖像密集型的游戲彭则,其中的許多對(duì)象會(huì)被頻繁重繪
SVG
不依賴分辨率
支持事件處理器
最適合帶有大型渲染區(qū)域的應(yīng)用程序(比如谷歌地圖)
復(fù)雜度高會(huì)減慢渲染速度(任何過度使用 DOM 的應(yīng)用都不快)
不適合游戲應(yīng)用
8.地理定位:Geolocation用于定位用戶信息
HTML5 Geolocation API 用于獲得用戶的地理位置。
但是鑒于該特性可能侵犯用戶的隱私占遥,除非用戶同意俯抖,否則用戶位置信息是不可用的。
使用 getCurrentPosition() 方法來獲得用戶的位置瓦胎。
function getLocation(){
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(showPosition);
}else{
alert("瀏覽器不支持地理定位");
}
}
function showPosition(pos){
var lat = pos.coords.latitude; //緯度
var lon = pos.coords.longitude; //經(jīng)度
var time = pos.timestamp; //定位時(shí)間
var alti = pos.coords.altitude; //海拔
var speed = pos.coords.speed; //速度
}
f
9.webStorage:
是本地存儲(chǔ)芬萍,存儲(chǔ)在客戶端尤揣,包括localStorage和sessionStorage。
localstorage:沒有時(shí)間限制的數(shù)據(jù)存儲(chǔ)(持久化的本地存儲(chǔ))柬祠。
sessionstorage:針對(duì)一個(gè) session 的數(shù)據(jù)存儲(chǔ)北戏。
cookie
主要用途是在保存用戶信息,比如登錄網(wǎng)站記住密碼漫蛔。
cookie不適合大量數(shù)據(jù)的存儲(chǔ)嗜愈,因?yàn)樗鼈冇擅總€(gè)對(duì)服務(wù)器的請(qǐng)求來傳遞,這使得 cookie 速度很慢而且效率也不高莽龟。對(duì)于不同的網(wǎng)站蠕嫁,數(shù)據(jù)存儲(chǔ)于不同的區(qū)域,并且一個(gè)網(wǎng)站只能訪問其自身的數(shù)據(jù)毯盈。
cookie拌阴、localstorage、sessionstorage的區(qū)別
特性
cookie
localstorage
sessionstorage
生命周期
只在設(shè)置cookie過期時(shí)間之前有效
除非被清除奶镶,否則永久有效
僅在當(dāng)前瀏覽器窗口有效迟赃,關(guān)閉瀏覽器或窗口失效
存放數(shù)據(jù)大小
不超過4k
一般為5MB
一般為5MB
與服務(wù)器端通信
始終在同源的http請(qǐng)求中攜帶(即使不需要),即cookie在瀏覽器和服務(wù)器間來回傳遞
僅在客戶端保存厂镇,不參與和服務(wù)器的通信
僅在客戶端保存纤壁,不參與和服務(wù)器的通信
易用性
需要自己封裝,源生的cookie接口并不友好
.webStorage的API接口使用更方便捺信,如setItem酌媒、getItem等
webStorage的API接口使用更方便,如setItem迄靠、getItem等
作用域
在所有同源窗口中共享
在所有同源窗口中共享
不在不同的瀏覽器窗口共享秒咨,即使是同一個(gè)頁面
保存數(shù)據(jù):
localStorage.setItem(key,value);
讀取數(shù)據(jù):
localStorage.getItem(key);
刪除單個(gè)數(shù)據(jù):
localStorage.removeItem(key);
刪除所有數(shù)據(jù):
localStorage.clear();
得到某個(gè)索引的key:
localStorage.key(index);
10.websocket
WebSocket是HTML5開始提供的一種在單個(gè) TCP 連接上進(jìn)行全雙工通訊的協(xié)議。
在WebSocket API中掌挚,瀏覽器和服務(wù)器只需要做一個(gè)握手的動(dòng)作雨席,然后,瀏覽器和服務(wù)器之間就形成了一條快速通道吠式。兩者之間就直接可以數(shù)據(jù)互相傳送陡厘。
瀏覽器通過 JavaScript 向服務(wù)器發(fā)出建立 WebSocket 連接的請(qǐng)求,連接建立以后特占,客戶端和服務(wù)器端就可以通過 TCP 連接直接交換數(shù)據(jù)糙置。當(dāng)你獲取 Web Socket 連接后,你可以通過 send() 方法來向服務(wù)器發(fā)送數(shù)據(jù)是目,并通過 onmessage 事件來接收服務(wù)器返回的數(shù)據(jù)谤饭。
結(jié)語:
簡(jiǎn)單的介紹一些HTML5新特性,在未來的學(xué)習(xí)中會(huì)繼續(xù)補(bǔ)充做進(jìn)一步的理解。
本文如果存在錯(cuò)誤的地方揉抵,歡迎指出批評(píng)~
最后編輯于 :2019.03.18 00:57:24
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者