HTML5新增特性

html5總的來說多了十個(gè)新特性形真,但其不支持ie8及ie8以下版本的瀏覽器。

  • 語義化標(biāo)簽
  • 增強(qiáng)型表單
  • 視頻和音頻
  • Canvas 繪圖
  • SVG 繪圖
  • 地理定位
  • 拖放 API
  • WebWorker
  • WebStorage
  • WebSocket

一且警、語義化標(biāo)簽

html5 語義化標(biāo)簽,可以使開發(fā)者更方便清晰構(gòu)建頁面的布局寄摆。

<!-- 定義頁眉蒸眠,通常包含LOGO,標(biāo)題和導(dǎo)航 -->
<header></header>
<!-- 定義了頁腳询件,通常包含版權(quán)或法律聲明,有時(shí)還包含一些鏈接 -->
<footer></footer>
<!-- 定義了一個(gè)部分唆樊,其中包含經(jīng)常出現(xiàn)在網(wǎng)站上的導(dǎo)航鏈接 -->
<nav></nav>
<!-- 定義了一個(gè)部分宛琅,例如側(cè)邊欄 -->
<aside></aside>
<!-- 定義了主體內(nèi)容 -->
<main></main>
<!-- 定義了文檔的一部分 -->
<section></section>
<!-- 定義了一條獨(dú)立的內(nèi)容。它不單指主要內(nèi)容逗旁,而是可以用于注釋和小部件 -->
<article></article>
<!-- 定義用戶可以看到或者隱藏的額外細(xì)節(jié) -->
<details>
    <summary>內(nèi)容標(biāo)題</summary>
    <p>這是隱藏的內(nèi)容一</p>
    <p>這是隱藏的內(nèi)容二</p>
</details>
<!-- 定義對(duì)話框 -->
<dialog open>
    <p>我是對(duì)話框</p>
</dialog>
<!-- 定義自包含內(nèi)容嘿辟,如圖表舆瘪,圖片 -->
<figure>
    <!-- 標(biāo)題 -->
    <figcaption>午后時(shí)光</figcaption>
    <img src="https://pics7.baidu.com/feed/d62a6059252dd42a066ff9f994ac9bb3c8eab898.jpeg?token=d0816df1b671a48272fbf91c58eb2d72&s=8B9456806C7640921D842CD90300F090" alt="午后時(shí)光" />
</figure>
<!-- 定義部分文本高亮顯示 -->
<mark>《CSS那些事兒》</mark>
<!-- 定義日期時(shí)間 -->
<time>2019/06/01</time>
1.png

二、增強(qiáng)型表單

html5修改一些新的input輸入特性红伦,改善更好的輸入控制和驗(yàn)證英古。

<!-- 選取顏色 -->
<input type="color" />
<!-- 選取日期 -->
<input type="date" />
<!-- 選取日期(UTC時(shí)間) -->
<input type="datetime" />
<!-- 選取日期(無時(shí)區(qū)) -->
<input type="datetime-local" />
<!-- 選擇一個(gè)月份 -->
<input type="month" />
<!-- 選擇周和年 -->
<input type="week" />
<!-- 選擇一個(gè)時(shí)間 -->
<input type="time" />
<!-- 包含e-mail地址的輸入域 -->
<input type="email" />
<!-- 數(shù)值的輸入域 -->
<input type="number" />
<!-- url地址輸入域 -->
<input type="url" />
<!-- 定義輸入電話號(hào)碼和字段 -->
<input type="tel" />
<!-- 用于搜索域 -->
<input type="search" />
<!-- 一個(gè)范圍內(nèi)數(shù)字值的輸入域 -->
<input type="range" />

html5新增了五個(gè)表單元素

<!-- 用戶會(huì)在他們輸入數(shù)據(jù)時(shí)看到域定義選項(xiàng)的下拉列表 -->
<input list="cars" />
<datalist id="cars">
    <option value="BMW">
    <option value="Ford">
    <option value="Volvo">
</datalist>
<!-- 進(jìn)度條,展示連接/下載進(jìn)度 -->
下載進(jìn)度:<progress value="22" max="100"></progress>
<!-- 提供一種驗(yàn)證用戶的可靠方法生成一個(gè)公鑰和私鑰 -->
<form action="/example/html5/demo_form.asp" method="get">
    用戶名:<input type="text" name="usr_name" />
    加密:<keygen name="security" />
    <input type="submit" />
</form>
<!-- 用于不同類型的輸出比如尖酸或腳本輸出 -->
<form oninput="x.value=parseInt(a.value)+parseInt(b.value)">0
    <input type="range" id="a" value="50">100
    +<input type="number" id="b" value="50">
    =<output name="x" for="a b"></output>
</form> 
<!-- 刻度值昙读,用于某些計(jì)量召调,例如溫度、重量等 -->
<meter value="0.6">60%</meter>

html5新增表單屬性

屬性 描述
placehoder 輸入框默認(rèn)提示文字
required 要求輸入的內(nèi)容是否可為空
pattern 描述一個(gè)正則表達(dá)式驗(yàn)證輸入的值
min/max 設(shè)置元素最小/最大值
step 為輸入域規(guī)定合法的數(shù)字間隔
height/wdith 用于image類型<input>標(biāo)簽圖像高度/寬度
autofocus 規(guī)定在頁面加載時(shí)蛮浑,域自動(dòng)獲得焦點(diǎn)
multiple 規(guī)定<input>元素中可選擇多個(gè)值

三唠叛、音頻和視頻

html5提供了音頻和視頻文件的標(biāo)準(zhǔn),既使用 <audio> 元素沮稚。

音頻:<audio src=" "></audio>艺沼。

<!-- 屬性提供添加播放、暫停和音量控件 -->
<audio controls>
    <source src="horse.ogg" type="audio/ogg">
    <source src="horse.mp3" type="audio/mpeg">
    你就瀏覽器不支持 audio 元素
</audio>

視頻:<video src=" "></video>

<!-- 屬性提供添加播放蕴掏、暫停和音量控件 -->
<video width="320" height="240" controls>
    <source src="movie.mp4" type="video/mp4">
    <source src="movie.ogg" type="video/ogg">
    你的瀏覽器不支持 Video 標(biāo)簽
</video>

四障般、Canvas 繪圖

https://www.runoob.com/w3cnote/html5-canvas-intro.html

五、SVG 繪圖

  • 什么是SVG?

    • SVG指可伸縮矢量圖形
    • SVG用于定義用于網(wǎng)絡(luò)的基于矢量的圖形
    • SVG使用XML格式定義圖形
    • SVG圖像在放大或改變尺寸的情況下其圖形質(zhì)量不會(huì)有損失
    • SVG是萬維網(wǎng)聯(lián)盟的標(biāo)準(zhǔn)
  • SVG的優(yōu)勢

    • SVG圖像可通過文本編譯器來創(chuàng)建和修改
    • SVG圖像可被搜索盛杰、索引挽荡、腳本化或壓縮
    • SVG是可伸縮的
    • SVG圖像可在任何的分辨率下被高質(zhì)量的打印
    • SVG可在圖像質(zhì)量不下降的情況下被放大
  • SVG 與 Canvas 區(qū)別

    • SVG適用于描述XML中的2D圖形的語言。
    • Canvas隨時(shí)隨地繪制2D圖形(使用javaScript)饶唤。
    • SVG是基于XML的徐伐,意味這可以操作DOM,渲染速度較慢募狂。
    • 在SVG中每個(gè)形狀都被當(dāng)做是一個(gè)對(duì)象办素,如果SVG發(fā)生改變,頁面就會(huì)發(fā)生重繪祸穷。
    • Canvas是一像素一像素地渲染性穿,如果改變某一個(gè)位置,整個(gè)畫布會(huì)重繪雷滚。
Canvas SVG
依賴分辨率 不依賴分辨率
不支持事件處理器 支持事件處理器
能夠以.png或.jpg格式保存結(jié)果圖像 復(fù)雜度會(huì)減慢搞渲染速度
文字呈現(xiàn)功能比較簡單 適合大型渲染區(qū)域的應(yīng)用程序
最合適圖像密集的游戲 不適合游戲應(yīng)用

六需曾、地理定位

使用 getCurrentPosition() 方法來獲取用戶的位置。以實(shí)現(xiàn)“LBS服務(wù)”

<body>
    <div id="demo"></div>
    <script>
        var x = document.getElementById("demo");
        getLocation();
        function getLocation() {
            if (navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(showPosition);
            }
            else {
                x.innerHTML = "該瀏覽器不支持獲取地理位置"; 
            }
        }
        function showPosition(position) {
            x.innerHTML = `緯度:${position.coords.latitude}經(jīng)度:${position.coords.longitude}`
        };
    </script>
</body>

七祈远、拖放 API

拖放是一種常見的特性呆万,即捉取對(duì)象以后拖到另一個(gè)位置。

在html5中车份,拖放是標(biāo)準(zhǔn)的一部分谋减,任何元素都能夠拖放。
<div draggable="true"></div>

當(dāng)元素拖動(dòng)時(shí)扫沼,我們可以檢查其拖動(dòng)的數(shù)據(jù)出爹。

<div draggable="true" ondragstart="drag(event)"></div>
<script>
function drap(ev){
    console.log(ev);
}
</script>
拖動(dòng)生命周期 屬性名 描述
拖動(dòng)開始 ondragstart 在拖動(dòng)操作開始時(shí)執(zhí)行腳本
拖動(dòng)過程中 ondrag 只要腳本在被拖動(dòng)就運(yùn)行腳本
拖動(dòng)過程中 ondragenter 當(dāng)元素被拖動(dòng)到一個(gè)合法的防止目標(biāo)時(shí)庄吼,執(zhí)行腳本
拖動(dòng)過程中 ondragover 只要元素正在合法的防止目標(biāo)上拖動(dòng)時(shí),就執(zhí)行腳本
拖動(dòng)過程中 ondragleave 當(dāng)元素離開合法的防止目標(biāo)時(shí)
拖動(dòng)結(jié)束 ondrop 將被拖動(dòng)元素放在目標(biāo)元素內(nèi)時(shí)運(yùn)行腳本
拖動(dòng)結(jié)束 ondragend 在拖動(dòng)操作結(jié)束時(shí)運(yùn)行腳本

八严就、Web Worker

http://www.ruanyifeng.com/blog/2018/07/web-worker.html

JavaScript 語言采用的是單線程模型总寻,也就是說,所有任務(wù)只能在一個(gè)線程上完成梢为,一次只能做一件事渐行。前面的任務(wù)沒做完,后面的任務(wù)只能等著抖誉。隨著電腦計(jì)算能力的增強(qiáng)殊轴,尤其是多核 CPU 的出現(xiàn),單線程帶來很大的不便袒炉,無法充分發(fā)揮計(jì)算機(jī)的計(jì)算能力旁理。

Web Worker 可以通過加載一個(gè)腳本文件,進(jìn)而創(chuàng)建一個(gè)獨(dú)立工作的線程我磁,在主線程之外運(yùn)行孽文。

  • 基本使用:

    • Web Worker的基本原理就是在當(dāng)前javascript的主線程中,使用Worker類加載一個(gè)javascript文件來開辟一個(gè)新的線程夺艰,

    • 起到互不阻塞執(zhí)行的效果芋哭,并且提供主線程和新縣城之間數(shù)據(jù)交換的接口:postMessage、onmessage郁副。

// worker.js
onmessage =function (evt){
    var d = evt.data;//通過evt.data獲得發(fā)送來的數(shù)據(jù)
    postMessage( d );//將獲取到的數(shù)據(jù)發(fā)送會(huì)主線程
}
<script>
    // worker.html
    // 創(chuàng)建一個(gè)Worker對(duì)象并向它傳遞將在新線程中執(zhí)行的腳本的URL
    var worker =new Worker("worker.js");
    // 向worker發(fā)送數(shù)據(jù)
    worker.postMessage("hello world");
    // 接收worker傳過來的數(shù)據(jù)函數(shù)
    worker.onmessage =function(evt){
        // 輸出worker發(fā)送來的數(shù)據(jù)
        console.log(evt.data);
    }
</script>

九减牺、Web Storage

WebStorage 是HTML新增的本地存儲(chǔ)解決方案之一,但并不是取代cookie 而指定的標(biāo)準(zhǔn)存谎,cookie 作為 HTTP 協(xié)議的一部分用來處理客戶端和服務(wù)器的通信是不可或缺的拔疚,session 正式依賴與實(shí)現(xiàn)的客戶端狀態(tài)保持。WebSorage 的意圖在于解決本來不應(yīng)該 cookie 做既荚,卻不得不用 cookie 的本地存儲(chǔ)稚失。

websorage擁有5M的存儲(chǔ)容量,而cookie卻只有4K恰聘,這是完全不能比的句各。

客戶端存儲(chǔ)數(shù)據(jù)有兩個(gè)對(duì)象,其用法基本是一致晴叨。

  • localStorage:沒有時(shí)間限制的數(shù)據(jù)存儲(chǔ)
  • sessionStorage:在瀏覽器關(guān)閉的時(shí)候就會(huì)清除凿宾。
<body>
    <button class="set-data-btn">設(shè)置數(shù)據(jù)</button>
    <button class="get-datakey-btn">獲取某個(gè)索引的值</button>
    <button class="remove-data-btn">刪除一條數(shù)據(jù)</button>
    <button class="clear-data-btn">刪除所有數(shù)據(jù)</button>
<script>
    let setBtn = document.querySelector('.set-data-btn');
    let getKeyBtn = document.querySelector('.get-datakey-btn');
    let removeBtn = document.querySelector('.remove-data-btn');
    let clearBtn = document.querySelector('.clear-data-btn');
    let data = {
        id: 1,
        username: '張三',
        token: 'asjfixuz8o13512410uxucj12j4l124kl1h5'
    };
    // 設(shè)置數(shù)據(jù)
    setBtn.onclick = () => localStorage.setItem('token', JSON.stringify(data));
    // 獲取某個(gè)索引的值
    getKeyBtn.onclick = () => console.log(localStorage.key(data))
    // 刪除一條
    removeBtn.onclick = () => localStorage.removeItem('token');
    // 刪除所有
    clearBtn.onclick = () => localStorage.clear();
</script>

十、WebSocket

WebSocket 協(xié)議為 web 應(yīng)用程序客戶端和服務(wù)端之間提供了一種全雙工通信機(jī)制兼蕊。

特點(diǎn):

  • 握手階段采用HTTP協(xié)議菌湃,默認(rèn)端口是80和443
  • 建立在TCP協(xié)議基礎(chǔ)之上,和http協(xié)議同屬于應(yīng)用層
  • 可以發(fā)送文本遍略,也可以發(fā)送二進(jìn)制數(shù)據(jù)惧所。
  • 沒有同源限制,客戶端可以與任意服務(wù)器通信绪杏。
  • 協(xié)議標(biāo)識(shí)符是ws(如果加密下愈,為wss),如ws://localhost:8023
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蕾久,一起剝皮案震驚了整個(gè)濱河市势似,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌僧著,老刑警劉巖履因,帶你破解...
    沈念sama閱讀 210,835評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異盹愚,居然都是意外死亡栅迄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門皆怕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來毅舆,“玉大人,你說我怎么就攤上這事愈腾”锘睿” “怎么了?”我有些...
    開封第一講書人閱讀 156,481評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵虱黄,是天一觀的道長悦即。 經(jīng)常有香客問我,道長橱乱,這世上最難降的妖魔是什么辜梳? 我笑而不...
    開封第一講書人閱讀 56,303評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮仅醇,結(jié)果婚禮上冗美,老公的妹妹穿的比我還像新娘。我一直安慰自己析二,他們只是感情好粉洼,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,375評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著叶摄,像睡著了一般属韧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蛤吓,一...
    開封第一講書人閱讀 49,729評(píng)論 1 289
  • 那天宵喂,我揣著相機(jī)與錄音,去河邊找鬼会傲。 笑死锅棕,一個(gè)胖子當(dāng)著我的面吹牛拙泽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播裸燎,決...
    沈念sama閱讀 38,877評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼顾瞻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了德绿?” 一聲冷哼從身側(cè)響起荷荤,我...
    開封第一講書人閱讀 37,633評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎移稳,沒想到半個(gè)月后蕴纳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,088評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡个粱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,443評(píng)論 2 326
  • 正文 我和宋清朗相戀三年古毛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片几蜻。...
    茶點(diǎn)故事閱讀 38,563評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡喇潘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出梭稚,到底是詐尸還是另有隱情颖低,我是刑警寧澤,帶...
    沈念sama閱讀 34,251評(píng)論 4 328
  • 正文 年R本政府宣布弧烤,位于F島的核電站忱屑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏暇昂。R本人自食惡果不足惜莺戒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,827評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望急波。 院中可真熱鬧从铲,春花似錦、人聲如沸澄暮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,712評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泣懊。三九已至伸辟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間馍刮,已是汗流浹背信夫。 一陣腳步聲響...
    開封第一講書人閱讀 31,943評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人静稻。 一個(gè)月前我還...
    沈念sama閱讀 46,240評(píng)論 2 360
  • 正文 我出身青樓警没,卻偏偏與公主長得像,于是被迫代替她去往敵國和親姊扔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子惠奸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,435評(píng)論 2 348