# html5 有哪些新特性、移除了那些元素? #### 如何處理 HTML5 新標簽的瀏覽器兼容問題?如何區分 HTML 和 HTML5? ###### tags: `HTML` `web camp 試題` HTML5 是 HTML 標準的最新演進版本,它是一個新的 HTML 語言版本包含了新的元素,屬性和行為,同時包含了一系列可以被用來讓 Web 站點和應用更加多樣化,功能更強大的技術。這套技術往往被稱作 HTML5 和它的朋友們,通常簡稱為 HTML5 ## 新特性 1.語意特性,添加`<header></header><nav></nav>`等標籤 2.多媒體,用於媒介回放的 video 和 audio 元素 3.圖像效果,用於繪畫的 canvas 元素,svg 元素等 4.離線&存儲,對本地離線存儲的更好的支持,local Store, Cookies 等 5.設備兼容特性,HTML5提供了前所未有的數據與應用接入開放接口。使外部應用可以直接與瀏覽器內部的數據直接相連, 6.連接特性,更有效的連接工作效率,使得基於頁面的實時聊天,更快速的網頁遊戲體驗,更優化的在線交流得到了實現。HTML5擁有更有效的服務器推送技術,Server-Sent Event和WebSockets就是其中的兩個特性,這兩個特性能夠幫助我們實現服務器將數據“推送”到客戶端的功能 7.性能與集成特性,HTML5會通過XMLHttpRequest2等技術,幫助您的Web應用和網站在多樣化的環境中更快速的工作 新增標籤 1.多媒體:``<audio></audio>, <video><video>,<source></source>, <embed></embed>, <track></track>`` 2.新表單元素:`<datalist> ,<output> , <keygen>` 3.新文檔節段和綱要: `<header>`页面头部、`<section>`章节、`<aside>`边栏、`<article>`文档内容、`<footer>`页面底部、`<section>`章节、`<aside>`边栏、`<article>`文档内容、`<footer>`页面底部等 使用 html5shiv 可以解決 ie 低版本不兼容的問題,只需要在 head 中加上,當版本低於 IE9 時,瀏覽器會加載html5.js 腳本,使得支持 html5 的新功能,也可以將腳本文件下載到本地。 ```htmlmixed= <head> <!--[if lt IE 9]> <script src='http://apps.bdimg.com/libs/html5shiv/3.7/html5shiv.min.js'> </script> <![endif]--> </head> ``` 3.input 有哪些新增類型? - color 選擇顏色 - date 選擇日期 - email 用於檢測輸入的是否為email格式的地址 - month 選擇月份 - number 用於應該包含數值的輸入域,可以設定對輸入值的限定 - range 用於定義一個滑動條,表示範圍 - search 用於搜索,比如站點搜索或Google 搜索 - tel輸入電話號碼 - time選擇時間 - url 輸入網址 - week 選擇周和年 4.瀏覽器本地存儲中cookie 和localStorage 有什麼區別?localStorage 如何存儲刪除數據。 共同點:sessionStorage、localStorage和cookie都由瀏覽器存儲在本地的數據。 區別 1.cookie數據始終在同源的http請求中攜帶(即使不需要),即cookie在瀏覽器和服務器間來回傳遞,localStorage不會自動把數據發給服務器,僅在本地保存 2.cookie數據還有路徑(path)的概念,可以限制cookie只屬於某個路徑下,存儲大小限制也不同,cookie數據不能超過4k,同時因為每次http請求都會攜帶cookie,所以cookie只適合保存很小的數據,如會話標識。localStorage雖然也有存儲大小的限制,但比cookie大得多,可以達到5M或更大。localStorage不會自動把數據發給服務器 3.cookie只在設置的cookie過期時間之前一直有效,即使窗口或瀏覽器關閉。localStorage:始終有效,窗口或瀏覽器關閉也一直保存,因此用作持久數據 4.localStorage支持事件通知機制,可以將數據更新的通知發送給監聽者。api接口使用更方便。而cookie的原生接口不友好,需要程序員自己封裝 HTML5中提供了localStorage對象可以將數據長期保存在客戶端,除非人為清除,localStorage提供了幾個方法: 1.存儲: localStorage.setItem(key,value)如果key存在時,更新value 2.獲取localStorage.getItem(key)如果key不存在返回null 3.刪除localStorage.removeItem(key)一旦刪除,key對應的數據將會全部刪除 4.全部清除localStorage.clear()使用removeItem逐個刪除太麻煩,可以使用clear,執行的後果是會清除所有localStorage對象保存的數據 注意:localStorage存數的數據是不能跨瀏覽器共用的,一個瀏覽器只能讀取各自瀏覽器的數據,儲存空間5M。 #### 資料來源 [https://html-differences.whatwg.org/#new-elements](html-differences.whatwg.org) [w3c.org 中文](http://www.chinaw3c.org/)