1: HTML5是什么药薯?有哪些新特性?有哪些新增標(biāo)簽勉失?如何讓低版本的 IE 支持 HTML5新標(biāo)簽
HTML5是什么:
HTML5是超文本標(biāo)記語(yǔ)言的第五次重大修改,2014年10月29日標(biāo)準(zhǔn)規(guī)范制定完成皂林。
新特性:
語(yǔ)義特性
HTML5賦予網(wǎng)頁(yè)更好的意義和結(jié)構(gòu)朗鸠。更加豐富的標(biāo)簽將隨著對(duì)RDFa的,微數(shù)據(jù)與微格式等方面的支持式撼,構(gòu)建對(duì)程序童社、對(duì)用戶都更有價(jià)值的數(shù)據(jù)驅(qū)動(dòng)的Web。本地存儲(chǔ)特性
基于HTML5開(kāi)發(fā)的網(wǎng)頁(yè)APP擁有更短的啟動(dòng)時(shí)間著隆,更快的聯(lián)網(wǎng)速度,這些全得益于HTML5 APP Cache呀癣,以及本地存儲(chǔ)功能美浦。Indexed DB(html5本地存儲(chǔ)最重要的技術(shù)之一)和API說(shuō)明文檔。設(shè)備兼容特性
從Geolocation功能的API文檔公開(kāi)以來(lái)项栏,HTML5為網(wǎng)頁(yè)應(yīng)用開(kāi)發(fā)者們提供了更多功能上的優(yōu)化選擇浦辨,帶來(lái)了更多體驗(yàn)功能的優(yōu)勢(shì)。HTML5提供了前所未有的數(shù)據(jù)與應(yīng)用接入開(kāi)放接口沼沈。使外部應(yīng)用可以直接與瀏覽器內(nèi)部的數(shù)據(jù)直接相連流酬,例如視頻影音可直接與microphones及攝像頭相聯(lián)。連接特性
更有效的連接工作效率列另,使得基于頁(yè)面的實(shí)時(shí)聊天芽腾,更快速的網(wǎng)頁(yè)游戲體驗(yàn),更優(yōu)化的在線交流得到了實(shí)現(xiàn)页衙。HTML5擁有更有效的服務(wù)器推送技術(shù)摊滔,Server-Sent Event和WebSockets就是其中的兩個(gè)特性,這兩個(gè)特性能夠幫助我們實(shí)現(xiàn)服務(wù)器將數(shù)據(jù)“推送”到客戶端的功能店乐。網(wǎng)頁(yè)多媒體特性
支持網(wǎng)頁(yè)端的Audio艰躺、Video等多媒體功能, 與網(wǎng)站自帶的APPS眨八,攝像頭腺兴,影音功能相得益彰。
三維廉侧、圖形及特效特性(Class: 3D, Graphics & Effects)
基于SVG页响、Canvas、WebGL及CSS3的3D功能伏穆,用戶會(huì)驚嘆于在瀏覽器中拘泞,所呈現(xiàn)的驚人視覺(jué)效果。性能與集成特性
沒(méi)有用戶會(huì)永遠(yuǎn)等待你的Loading——HTML5會(huì)通過(guò)XMLHttpRequest2等技術(shù)枕扫,解決以前的跨域等問(wèn)題陪腌,幫助您的Web應(yīng)用和網(wǎng)站在多樣化的環(huán)境中更快速的工作。
。新增標(biāo)簽
元素 | 描述 |
---|---|
canvas | 標(biāo)簽定義圖形诗鸭,比如圖表和其他圖像染簇。該標(biāo)簽基于 JavaScript 的繪圖 API |
audio | 定義音頻內(nèi)容 |
video | 定義視頻(video 或者 movie) |
source | 定義多媒體資源 <video> 和<audio> |
embed | 定義嵌入的內(nèi)容,比如插件 |
track | 為諸如 <video> 和 <audio> 元素之類(lèi)的媒介規(guī)定外部文本軌道 |
datalist | 定義選項(xiàng)列表强岸。與 input 元素配合使用該元素锻弓,來(lái)定義 input 可能的值 |
keygen | 規(guī)定用于表單的密鑰對(duì)生成器字段 |
output | 定義不同類(lèi)型的輸出,比如腳本的輸出 |
article | 定義頁(yè)面正文內(nèi)容 |
aside | 定義頁(yè)面內(nèi)容之外的內(nèi)容 |
bdi | 設(shè)置一段文本蝌箍,使其脫離其父元素的文本方向設(shè)置 |
command | 定義命令按鈕青灼,比如單選按鈕、復(fù)選框或按鈕 |
details | 用于描述文檔或文檔某個(gè)部分的細(xì)節(jié) |
dialog | 定義對(duì)話框妓盲,比如提示框 |
summary | 標(biāo)簽包含 details 元素的標(biāo)題 |
figure | 規(guī)定獨(dú)立的流內(nèi)容(圖像杂拨、圖表、照片悯衬、代碼等等) |
figcaption | 定義 <figure> 元素的標(biāo)題 |
footer | 定義 section 或 document 的頁(yè)腳 |
header | 定義了文檔的頭部區(qū)域 |
mark | 定義帶有記號(hào)的文本 |
meter | 定義度量衡弹沽。僅用于已知最大和最小值的度量 |
nav | 導(dǎo)航 |
progress | 定義任何類(lèi)型的任務(wù)的進(jìn)度 |
ruby | 定義 ruby 注釋?zhuān)ㄖ形淖⒁艋蜃址?/td> |
rt | 定義字符(中文注音或字符)的解釋或發(fā)音 |
rp | 在 ruby 注釋中使用,定義不支持 ruby 元素的瀏覽器所顯示的內(nèi)容 |
section | 定義文檔中的節(jié)(section筋粗、區(qū)段) |
time | 定義日期或時(shí)間 |
wbr | 規(guī)定在文本中的何處適合添加換行符 |
讓低版本的 IE 支持 HTML5新標(biāo)簽
- 使用html5shiv.js
注意 如果版本小于IE9就引入html5shiv.js策橘,IE9以前的瀏覽器就能使用h5標(biāo)簽,并使用定義好的樣式了娜亿。這個(gè)標(biāo)簽必須放在head標(biāo)簽內(nèi)丽已,因?yàn)闉g覽器要在解析之前知道這個(gè)元素。
2: input 有哪些新增類(lèi)型暇唾?
input新增type
- url
- number
- range
- Date Picker
date
month
week
time
datatime
3: 瀏覽器本地存儲(chǔ)中 cookie 和 localStorage 有什么區(qū)別促脉? localStorage 如何存儲(chǔ)刪除數(shù)據(jù)。
概念
Cookie
Cookie非常小策州,它的大小限制為4KB左右瘸味,它的主要用途有保存登錄信息,比如你登錄某個(gè)網(wǎng)站市場(chǎng)可以看到“記住密碼”够挂,這通常就是通過(guò)在 Cookie 中存入一段辨別用戶身份的數(shù)據(jù)來(lái)實(shí)現(xiàn)的旁仿。localStorage
localStorage 是 HTML5 標(biāo)準(zhǔn)中新加入的技術(shù),它并不是什么劃時(shí)代的新東西孽糖。早在 IE 6 時(shí)代枯冈,就有一個(gè)叫 userData 的東西用于本地存儲(chǔ),而當(dāng)時(shí)考慮到瀏覽器兼容性办悟,更通用的方案是使用 Flash尘奏。而如今,localStorage 被大多數(shù)瀏覽器所支持.sessionStorage
sessionStorage 與 localStorage 的接口類(lèi)似病蛉,但保存數(shù)據(jù)的生命周期與 localStorage 不同炫加。 sessionStorage 是一個(gè)前端的概念瑰煎,它只是可以將一部分?jǐn)?shù)據(jù)在當(dāng)前會(huì)話中保存下來(lái),刷新頁(yè)面數(shù)據(jù)依舊存在俗孝。但當(dāng)頁(yè)面關(guān)閉后酒甸,sessionStorage 中的數(shù)據(jù)就會(huì)被清空。
特性 | Cookie | localStorage |
---|---|---|
數(shù)據(jù)的生命期 | 默認(rèn)情況下赋铝,cookie開(kāi)始于瀏覽器啟動(dòng)插勤,結(jié)束于瀏覽器關(guān)閉,但是可以手動(dòng)設(shè)置cookie的過(guò)期時(shí)間革骨,同時(shí)农尖,到期后被刪除 | 除非被清除,否則永久保存 |
存放數(shù)據(jù)大小 | 4K左右 | 一般為5MB |
與服務(wù)器端通信 | 每次都會(huì)攜帶在HTTP頭中苛蒲,如果使用cookie保存過(guò)多數(shù)據(jù)會(huì)帶來(lái)性能問(wèn)題 | 僅在客戶端(即瀏覽器)中保存卤橄,不參與和服務(wù)器的通信 |
易用性 | 需要程序員自己封裝,源生的Cookie接口不友好 | 源生接口可以接受臂外,亦可再次封裝來(lái)對(duì)Object和Array有更好的支持 |
localStorage存儲(chǔ)數(shù)據(jù):
localStorage.setItem(key,value);
localStorage.key = value;
localStorage刪除數(shù)據(jù):
localStorage.removeItem(key) //刪除指定數(shù)據(jù)
localStorage.clear() //刪除所有數(shù)據(jù)
localStorage讀取數(shù)據(jù):
localStorage.getItem(key,value);
localStorage.key = value;