HTML5是什么?有哪些新特性?有哪些新增標(biāo)簽?如何讓低版本的 IE 支持 HTML5新標(biāo)簽?
HTML5是HTML第五次重大修改,廢棄了許多沉冗的標(biāo)簽,同時(shí)也新增了許多新的標(biāo)簽,使HTML更加語義化,交互功能更加豐富。
在HTML5中,擁有許多新的特性:
1、更多語義化標(biāo)簽,賦予網(wǎng)頁更好的意義和結(jié)構(gòu);
2、支持本地存儲(chǔ)。網(wǎng)頁APP擁有更短的啟動(dòng)時(shí)間,更快的聯(lián)網(wǎng)速度
3、設(shè)備兼容。外部應(yīng)用可以直接與瀏覽器內(nèi)部的數(shù)據(jù)直接相連,例如視頻影音可直接與microphones及攝像頭進(jìn)行交互
4、鏈接更快。實(shí)現(xiàn)了Server-Sent Event和WebSockets,使得基于頁面的實(shí)時(shí)聊天,更快速的網(wǎng)頁游戲體驗(yàn),更優(yōu)化的在線交流得到了實(shí)現(xiàn)
5、audio和video標(biāo)簽的引用,可以在頁面上嵌入多媒體內(nèi)容
6、基于svg,canvas的三維、圖形及特效特性
下面就是一些新增的標(biāo)簽和改變
1、關(guān)于DOCTYPE
//以前的HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
//HTML5
<!DOCTYPE htm>
2、關(guān)于meta
//以前HTML
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
//HTML5
<meta charset="utf-8">
3、新的標(biāo)簽
canvas
標(biāo)簽定義圖形,比如圖表和其他圖像。該標(biāo)簽基于 JavaScript 的繪圖 API
audio
定義音頻內(nèi)容
video
定義視頻(video 或者 movie)
source
定義多媒體資源 <video> 和<audio>
embed
定義嵌入的內(nèi)容,比如插件
track
為諸如 <video> 和 <audio> 元素之類的媒介規(guī)定外部文本軌道
datalist
定義選項(xiàng)列表。與 input 元素配合使用該元素,來定義 input 可能的值
keygen
規(guī)定用于表單的密鑰對生成器字段
output
定義不同類型的輸出,比如腳本的輸出
article
定義頁面正文內(nèi)容
aside
定義頁面內(nèi)容之外的內(nèi)容
bdi
設(shè)置一段文本,使其脫離其父元素的文本方向設(shè)置
command
定義命令按鈕,比如單選按鈕、復(fù)選框或按鈕
details
用于描述文檔或文檔某個(gè)部分的細(xì)節(jié)
dialog
定義對話框,比如提示框
summary
標(biāo)簽包含details
元素的標(biāo)題
figure
規(guī)定獨(dú)立的流內(nèi)容(圖像、圖表、照片、代碼等等)
figcaption
定義<figure>
元素的標(biāo)題
footer
定義section
或document
的頁腳
header
定義了文檔的頭部區(qū)域
mark
定義帶有記號(hào)的文本
meter
定義度量衡。僅用于已知最大和最小值的度量
nav
導(dǎo)航
progress
定義任何類型的任務(wù)的進(jìn)度
ruby
定義ruby注釋(中文注音或字符)
rt
定義字符(中文注音或字符)的解釋或發(fā)音
rp
在 ruby 注釋中使用,定義不支持ruby元素的瀏覽器所顯示的內(nèi)容
section
定義文檔中的節(jié)(section、區(qū)段)
time
定義日期或時(shí)間
wbr
規(guī)定在文本中的何處適合添加換行符
以往我們會(huì)使用<div>
標(biāo)簽了劃分頁面區(qū)塊,現(xiàn)在HTML5中新增了<footer>
、<header>
等新元素,頁面結(jié)構(gòu)就更清晰了
如何讓低版本的IE也支持HTML5新元素
方法1
在<head>
中加入JavaScript
<head>
<script type="text/javascript">
document.createElement('header')
document.createElement('footer')
</script>
</head>
這樣就可以在IE中使用添加的標(biāo)簽
<header></header>
<footer></footer>
方法2
使用html5shiv.js
在<head>
中加入
<!--[if lt IE 9]>
<script type="text/javascript" src="https://cdn.bootcss.com/html5shiv/r29/html5.js"></script>
<![endif]-->
如果瀏覽器版本低于IE9,這段script就會(huì)被解析
input有哪些新增類型?
emali
輸入郵箱,不符合郵箱格式無法提交,且會(huì)彈出提示
url
輸入url,不符合url格式無法提交,且會(huì)彈出提示
number
只能輸入數(shù)字
range
一個(gè)拖動(dòng)控件
Date
日期選擇控件
瀏覽器本地存儲(chǔ)中Cookie和localStorage有什么區(qū)別?localStorage如何存儲(chǔ)刪除數(shù)據(jù)?
什么是Cookie
Cookie指某些網(wǎng)站為了辨別用戶身份而儲(chǔ)存在用戶本地終端(Client Side)上的數(shù)據(jù)
Cookie總是保存在客戶端中,按在客戶端中的存儲(chǔ)位置,可分為內(nèi)存Cookie和硬盤Cookie。
內(nèi)存Cookie由瀏覽器維護(hù),保存在內(nèi)存中,瀏覽器關(guān)閉后就消失了,其存在時(shí)間是短暫的。硬盤Cookie保存在硬盤里,有一個(gè)過期時(shí)間,除非用戶手工清理或到了過期時(shí)間,硬盤Cookie不會(huì)被刪除,其存在時(shí)間是長期的。所以,按存在時(shí)間,可分為非持久Cookie和持久Cookie
以登陸為例
1、客戶端發(fā)送用戶名和密碼到服務(wù)端
2、服務(wù)端驗(yàn)證成功,把用戶的認(rèn)證狀態(tài)與SessionID綁定記錄在服務(wù)器端
3、向客戶端響應(yīng)時(shí),會(huì)在響應(yīng)頭部字段Set-Cookie內(nèi)寫入SessionID
4、客戶端收到響應(yīng),把SessionID作為一個(gè)Cookie保存下來,從這以后,客戶端發(fā)送的請求都會(huì)在請求頭帶上這一個(gè)Cookie
什么是localStorage
localStorage是本地持久儲(chǔ)存客戶端數(shù)據(jù)的API
同一個(gè)域名的網(wǎng)站共享同一個(gè)localStorage對象,不同域名的localStorage不能相互訪問 (cookie也是一樣的)
每一個(gè)域名的儲(chǔ)存空間是有限的,至少為5MB (cookie大約只有4kb)
localStorage使用鍵值對的方式儲(chǔ)存數(shù)據(jù),鍵值都必須為字符串(cookie也一樣)
cookie和localStorage有什么區(qū)別?
1、服務(wù)器發(fā)送請求時(shí)會(huì)帶上cookie
2、cookie有存儲(chǔ)期限,到期了會(huì)自動(dòng)失效,而localStorage則不會(huì),除非手動(dòng)刪除
3、cookie大小限制大約為4KB,localStorage大約為5MB
CSS3效果實(shí)現(xiàn)
http://js.jirengu.com/wafe/4/edit
背景漸變
http://js.jirengu.com/hibow/7/edit