1:HTML5是什么?有哪些新特性?有哪些新增標簽?如何讓低版本的 IE 支持 HTML5新標簽
HTML5是超文本標記語言的第五次重大修改,目的是為了在移動設備上支持多媒體。
HTML 5的新特性有:
- 新的解析規則增強了靈活性
- 新屬性
- 淘汰過時的或冗余的屬性
- 一個HTML5文檔到另一個文檔間的拖放功能
- 離線編輯
- 信息傳遞的增強
- 詳細的解析規則
- 多用途互聯網郵件擴展(MIME)和協議處理程序注冊
- 在SQL數據庫中存儲數據的通用標準(Web SQL)
新增標簽:
標簽 | 定義 |
---|---|
canvas | 標簽定義圖形,比如圖表和其他圖像。該標簽基于 JavaScript 的繪圖 API |
audio | 定義音頻內容 |
video | 定義視頻(video 或者 movie) |
source | 定義多媒體資源 <video> 和<audio> |
embed | 定義嵌入的內容,比如插件 |
track | 為諸如 <video> 和 <audio> 元素之類的媒介規定外部文本軌道 |
datalist | 定義選項列表。與 input 元素配合使用該元素,來定義 input 可能的值 |
keygen | 規定用于表單的密鑰對生成器字段 |
output | 定義不同類型的輸出,比如腳本的輸出 |
article | 定義頁面正文內容 |
aside | 定義頁面內容之外的內容 |
bdi | 設置一段文本,使其脫離其父元素的文本方向設置 |
command | 定義命令按鈕,比如單選按鈕、復選框或按鈕 |
details | 用于描述文檔或文檔某個部分的細節 |
dialog | 定義對話框,比如提示框 |
summary | 標簽包含 details 元素的標題 |
figure | 規定獨立的流內容(圖像、圖表、照片、代碼等等) |
figcaption | 定義 <figure> 元素的標題 |
footer | 定義 section 或 document 的頁腳 |
header | 定義了文檔的頭部區域 |
mark | 定義帶有記號的文本 |
meter | 定義度量衡。僅用于已知最大和最小值的度量 |
nav | 導航 |
progress | 定義任何類型的任務的進度 |
ruby | 定義 ruby 注釋(中文注音或字符) |
rt | 定義字符(中文注音或字符)的解釋或發音 |
rp | 在 ruby 注釋中使用,定義不支持 ruby 元素的瀏覽器所顯示的內容 |
section | 定義文檔中的節(section、區段) |
time | 定義日期或時間 |
wbr | 規定在文本中的何處適合添加換行符 |
2:input 有哪些新增類型?
新增的input類型:
type | 定義 |
---|---|
用于編輯 e-mail 的字段;在提交表單時。 | |
url | 用于編輯URL的字段。 |
number | 用于輸入浮點數的控件。 |
range | 用于輸入不精確值控件。 |
search | 用于輸入搜索字符串的單行文本字段。 |
color | 用于指定顏色的控件。 |
tel | 用于輸入電話號碼的控件. |
time | 用于輸入不含時區的時間控件。 |
datetime | 基于 UTC 時區的日期時間輸入控件(時,分,秒及幾分之一秒)。 |
datetime-local | 用于輸入日期時間控件,不包含時區。 |
date | 用于輸入日期的控件(年,月,日,不包括時間)。 |
week | 用于輸入一個由星期-年組成的日期,日期不包括時區。 |
month | 用于輸入年月的控件,不帶時區。 |
3:瀏覽器本地存儲中 cookie 和 localStorage 有什么區別? localStorage 如何存儲刪除數據。
特性 | Cookie | localStorage | sessionStorage |
---|---|---|---|
數據的生命期 | 可設置失效時間,默認是關閉瀏覽器后失效 | 除非被清除,否則永久保存 | 僅在當前會話下有效,關閉頁面或瀏覽器后被清除 |
存放數據大小 | 4K左右 | 一般為5MB | 一般為5MB |
與服務器端通信 | 每次都會攜帶在HTTP頭中,如果使用cookie保存過多數據會帶來性能問題 | 僅在客戶端(即瀏覽器)中保存,不參與和服務器的通信 | 僅在客戶端(即瀏覽器)中保存,不參與和服務器的通信 |
易用性 | 需要程序員自己封裝,源生的Cookie接口不友好 | 源生接口可以接受,亦可再次封裝來對Object和Array有更好的支持 | 源生接口可以接受,亦可再次封裝來對Object和Array有更好的支持 |
localStorage的使用
清空localStorage
localStorage.clear() // undefined
localStorage //Storage {length: 0} 存儲數據
存儲數據
localStorage.setItem("name","caibin") //存儲名字為name值為caibin的變量
localStorage.name = "caibin"; // 等價于上面的命令
localStorage // Storage{name: "caibin", length: 1} 讀取數據
讀取數據
localStorage.getItem("name") //caibin,讀取保存在localStorage對象里名為name的變量的值
localStorage.name // "caibin"
localStorage.valueOf() //讀取存儲在localStorage上的所有數據
localStorage.key(0) // 讀取第一條數據的變量名(鍵值)
//遍歷并輸出localStorage里存儲的名字和值
for(var i=0; i<localStorage.length;i++){
console.log('localStorage里存儲的第'+i+'條數據的名字為:'+localStorage.key(i)+',值為:'+localStorage.getItem(localStorage.key(i)));
}
刪除某個變量
localStorage.removeItem("name"); //undefined
localStorage // Storage {length: 0} 可以看到之前保存的name變量已經從localStorage里刪除了
檢查localStorage里是否保存某個變量
// 這些數據都是測試的,是在我當下環境里的,只是demo哦~
localStorage.hasOwnProperty('name') // true
localStorage.hasOwnProperty('sex') // false
將數組轉為本地字符串
var arr = ['aa','bb','cc']; // ["aa","bb","cc"]
localStorage.arr = arr //["aa","bb","cc"]
localStorage.arr.toLocaleString(); // "aa,bb,cc"
將JSON存儲到localStorage里
var students = {
xiaomin: {
name: "xiaoming",
grade: 1
},
teemo: {
name: "teemo",
grade: 3
}
}
students = JSON.stringify(students); //將JSON轉為字符串存到變量里
console.log(students);
localStorage.setItem("students",students);//將變量存到localStorage里
var newStudents = localStorage.getItem("students");
newStudents = JSON.parse(students); //轉為JSON
console.log(newStudents); // 打印出原先對象
4:寫出如下 CSS3效果的簡單事例
1\. 圓角, 圓形
2\. div 陰影
3\. 2D 轉換:放大、縮小、偏移、旋轉
4\. 3D 轉換:移動、旋轉
5\. 背景色漸變
6\. 過渡效果
7\. 動畫