摘要:年月日,萬(wàn)維網(wǎng)聯(lián)盟宣布,標(biāo)準(zhǔn)規(guī)范制定完成。作為一種超文本標(biāo)記語(yǔ)言,已經(jīng)成為了上使用的通用標(biāo)記語(yǔ)言,而在這次的規(guī)范中,為開(kāi)發(fā)者帶來(lái)了一些令人興奮的新特性。
2014年10月29日,W3C(萬(wàn)維網(wǎng)聯(lián)盟)宣布,HTML5標(biāo)準(zhǔn)規(guī)范制定完成。作為一種超文本標(biāo)記語(yǔ)言,HTML已經(jīng)成為了Web上使用的通用標(biāo)記語(yǔ)言,而在這次HTML5的規(guī)范中,為開(kāi)發(fā)者帶來(lái)了一些令人興奮的新特性。
下面簡(jiǎn)單地介紹下這些新特性,包括但不限于:
語(yǔ)義化標(biāo)簽
增強(qiáng)型表單
DOM擴(kuò)展
原生拖放
媒體元素
Web Socket
Web Storage
地理位置
canvas繪圖
語(yǔ)義化標(biāo)簽HTML 語(yǔ)義化是指僅僅從 HTML 元素上就能看出頁(yè)面的大致結(jié)構(gòu),比如需要強(qiáng)調(diào)的內(nèi)容可以放在 標(biāo)簽中,而不是通過(guò)樣式設(shè)置 標(biāo)簽去做。不同瀏覽器對(duì) HTML 元素的解析可能有差異,HTML 語(yǔ)義化便是在拋開(kāi)樣式之后,頁(yè)面能有一個(gè)友好的展示效果。我們力求讓頁(yè)面有良好的結(jié)構(gòu),讓頁(yè)面的元素有含義,同時(shí)利于被搜索引擎解析,利于 SEO。HTML 語(yǔ)義化的建議:
少使用無(wú)意義的 在 標(biāo)簽中設(shè)置 for 屬性和對(duì)應(yīng)的 關(guān)聯(lián)起來(lái); 設(shè)置
同時(shí),還添加了placeholder、required、pattern、min、max、height、width等表單屬性。 placeholder 提供對(duì)輸入域的提示值 required 規(guī)定表單提交前輸入域是否必填 pattern 規(guī)定用于驗(yàn)證input域的正則表達(dá)式 min 規(guī)定輸入域允許的最小值 max 規(guī)定輸入域允許的最大值 multiple 輸入域可以選擇多個(gè)值,適用于email和file類型 HTML5標(biāo)準(zhǔn)的表單中添加了很多功能,雖然這些功能都是之前常用的功能,但對(duì)于開(kāi)發(fā)者來(lái)說(shuō),這確實(shí)是一件很不錯(cuò)的事情。 HTML5增加的getElementByClassName()方法是最受人歡迎的一個(gè)方法,可以通過(guò)document對(duì)象及所有HTML元素調(diào)用該方法。 使用這個(gè)方法可以更方便地為帶有某些類的元素添加事件處理程序,而不必再局限于使用ID或標(biāo)簽名(getElementsByTagName)。 HTML5規(guī)定可以為元素添加非標(biāo)準(zhǔn)的屬性,但要加前綴data-,為元素提供與渲染無(wú)關(guān)的信息。 可以通過(guò)元素的dataset屬性訪問(wèn)自定義屬性的值。 HTML5還為DOM作了其他擴(kuò)展,包括classList屬性、焦點(diǎn)管理、HTMLDocument變化、字符集屬性、插入標(biāo)記等。 最早在網(wǎng)頁(yè)中引入JavaScript拖放功能的是IE4,HTML5以IE的實(shí)例為基礎(chǔ)制定了拖放規(guī)范。拖放事件可以控制拖放相關(guān)的各個(gè)方面,拖動(dòng)某元素時(shí),將依次觸發(fā)下列事件: dragstart drag dragend 拖放通常伴隨著數(shù)據(jù)變化,為了在拖放操作時(shí)實(shí)現(xiàn)數(shù)據(jù)變換,IE5引入了dataTransfer對(duì)象,它是事件對(duì)象的一個(gè)屬性,用于從被拖動(dòng)元素向放置目標(biāo)傳遞字符串格式的數(shù)據(jù)。dataTransfer對(duì)象有兩個(gè)主要方法:getData()和setData(),getData()可以獲取由setData()保存的值。 同時(shí),還能通過(guò)dataTransfer來(lái)確定被拖動(dòng)的元素及作為放置目標(biāo)的元素能夠接收什么操作。 默認(rèn)情況下,圖像、鏈接和文本是可以拖動(dòng)的,HTML5為所有HTML元素規(guī)定了一個(gè)draggable屬性,表示元素是否可以拖動(dòng)。 HTML5新增了兩個(gè)與媒體相關(guān)的標(biāo)簽,讓開(kāi)發(fā)人員不必依賴任何插件就能在網(wǎng)頁(yè)中嵌入跨瀏覽器的音頻和視頻內(nèi)容,這兩個(gè)標(biāo)簽就是和。 使用這兩個(gè)元素時(shí),至少要在標(biāo)簽中包含src屬性,指向要加載的媒體文件。并非所有的瀏覽器都支持所有媒體格式,所以可以指定多個(gè)不同的媒體來(lái)源,此時(shí)使用 和包含很多屬性,包括autuplay、controls、src等,還可以觸發(fā)很多事件,讓開(kāi)發(fā)人員在使用少量HTML和JavaScript的情況下編寫(xiě)出自定義的音頻/視頻播放器。 Web Storage的目的是克服由cookie帶來(lái)的一些限制,當(dāng)數(shù)據(jù)需要被嚴(yán)格控制在客戶端上時(shí),無(wú)須持續(xù)地將數(shù)據(jù)發(fā)回服務(wù)器。Web Storage的兩個(gè)主要目標(biāo)是: 提供一種在cookie之外存儲(chǔ)會(huì)話數(shù)據(jù)的途徑 提供一種存儲(chǔ)大量可以跨會(huì)話存在的數(shù)據(jù)的機(jī)制 Web Storage常用的兩個(gè)對(duì)象分別是localStorage和sessionStorage。 sessionStorage對(duì)象存儲(chǔ)某個(gè)特定會(huì)話的數(shù)據(jù),該數(shù)據(jù)只保持到瀏覽器關(guān)閉。因?yàn)閟essionStorage綁定于某個(gè)服務(wù)器會(huì)話,所以文件在本地運(yùn)行時(shí)是不可用的。下面展示了怎么使用sessionStorage: localStorage對(duì)象在HTML5規(guī)范中作為持久保存客戶端數(shù)據(jù)的方案,目的是跨越會(huì)話存儲(chǔ)對(duì)象,但有特定的訪問(wèn)限制。要訪問(wèn)同一個(gè)localStorage對(duì)象,頁(yè)面必須來(lái)自同一個(gè)域名(子域名無(wú)效),使用同一種協(xié)議,在同一個(gè)端口上。 與其他客戶端數(shù)據(jù)存儲(chǔ)方案類似,Web Storage同樣也有限制,這些限制因?yàn)g覽器而異。對(duì)于localStorage和sessionStorage,有的瀏覽器會(huì)設(shè)置每個(gè)來(lái)源5MB的限制,有的瀏覽器會(huì)設(shè)置2.5M的限制。 Web Sockets的目標(biāo)是在一個(gè)多帶帶的持久連接上提供全雙工、雙向通信。使用標(biāo)準(zhǔn)的HTTP服務(wù)器無(wú)法實(shí)現(xiàn)Web Sockets,只有支持這種協(xié)議的專門(mén)服務(wù)器才能正常工作。 未加密的連接不再是http://而是ws://,加密的連接也不再是https://而是wss://。使用自定義協(xié)議而不是HTTP協(xié)議的好處是,能夠在客戶端和服務(wù)器之間發(fā)送非常少量的數(shù)據(jù),而不必?fù)?dān)心HTTP那樣字節(jié)級(jí)的開(kāi)銷。 要?jiǎng)?chuàng)建Web Socket,先實(shí)現(xiàn)一個(gè)WebSocket對(duì)象并傳入要連接的URL: Web Socket打開(kāi)之后,就可以通過(guò)連接發(fā)送和接收數(shù)據(jù)。要向服務(wù)器發(fā)送數(shù)據(jù),使用send()方法并傳入任意字符串,例如: 對(duì)于復(fù)雜的數(shù)據(jù)結(jié)構(gòu),在通過(guò)連接發(fā)送前,必須進(jìn)行序列化: 接下來(lái),服務(wù)器要讀取其中的數(shù)據(jù),就要解析接收的JSON字符串。當(dāng)服務(wù)器向客戶端發(fā)來(lái)消息時(shí),WebSocket對(duì)象就會(huì)觸發(fā)message事件。 要關(guān)閉Web Socket連接,可以在任何時(shí)候調(diào)用close()方法。 通過(guò)地理定位(geolocation)API,JavaScript代碼能夠訪問(wèn)到用戶的當(dāng)前位置信息。當(dāng)然,訪問(wèn)之前用戶必須同意共享其地理位置信息。 Geolocation API在瀏覽器中的實(shí)現(xiàn)是navigator.geolocation對(duì)象,這個(gè)對(duì)象包含3個(gè)方法。第一個(gè)方法是getCurrentPosition(),調(diào)用這個(gè)方法就會(huì)觸發(fā)請(qǐng)求用戶共享地理定位信息的對(duì)話框。成功會(huì)接收到一個(gè)Position對(duì)象參數(shù),該對(duì)象有兩個(gè)屬性:coords和timestamp。coords對(duì)象中將包含下列與位置相關(guān)的信息: latitude:緯度 longitude:經(jīng)度 accuracy:經(jīng)、緯度坐標(biāo)的精度,以米為單位 如果希望跟蹤用戶的位置,可以使用watchPosition()方法。這個(gè)方法與getCurrentPosition()方法基本相同,第一次調(diào)用,執(zhí)行成功回調(diào)或者錯(cuò)誤回調(diào),然后,watchPosition()就地等待系統(tǒng)發(fā)出位置已改變的信號(hào)(它不會(huì)自己輪詢位置)。 HTML5添加的最受歡迎的功能就是元素。這個(gè)元素負(fù)責(zé)在頁(yè)面中設(shè)定一個(gè)區(qū)域,然后就可以通過(guò)JavaScript動(dòng)態(tài)地在這個(gè)區(qū)域中繪制圖形。 元素最早是蘋(píng)果公司推出的,當(dāng)時(shí)主要用在其Dsahboard文件中(最新的Mac已經(jīng)棄用了這個(gè)軟件)。 要使用元素,必須先設(shè)置其width和height屬性,指定可以繪圖的區(qū)域大小。出現(xiàn)在開(kāi)始標(biāo)簽和結(jié)束標(biāo)簽中的內(nèi)容是后備信息,如果瀏覽器不支持元素,就會(huì)顯示這些信息。 上面只是簡(jiǎn)單地介紹了下HTML5所帶來(lái)的一些新特性,淺嘗則止并不深入,這些新特性在平時(shí)的開(kāi)發(fā)中也給我們帶來(lái)了很大的便利性。 如果想深入地了解這些特性,建議去Mozilla官方網(wǎng)站閱讀相關(guān)文檔。 文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。 轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/106534.html//取得類中包含"username"和"current"的元素
var allCurrentUsernames = document.getElementByClassName("username current")
//取得id為"myDiv"的元素中帶有類名"selected"的所有元素
var selected = document.getElementById("myDiv").getElementsByClassName("selected")
var div = document.getElementById("div")
//取得自定義屬性的值
var age = div.dataset.age;
var name = div.dataset.name;
//設(shè)置和接收文本數(shù)據(jù)
event.dataTransfer.serData("name", "James")
var name = event.dataTransfer.getData("name")
媒體元素
sessionStorage.setItem("name", "James");
var name = sessionStorage.getItem("name")
localStorage.setItem("name", "James");
var name = localStorage.getItem("name")
var socket = new WebSocket("ws://www.example.com/")
socket.send("Hello World");
//將數(shù)據(jù)序列化為一個(gè)JSON字符串,再發(fā)送到服務(wù)器
const message = {
name: "James",
age: "2019",
date: "2019-01-01"
}
socket.send(JSON.stringify(message));
socket.onmessage = function(event) {
const data = event.data;
//處理數(shù)據(jù)
}
socket.close();
地理位置
navigator.geolocation.getCurrentPosition(position => {
drawMapAt(position.coords.latitude, position.coords.longitude);
}, error => {
console.log("Error Code:" + error.code);
console.log("Error Message:" + error.message);
});
結(jié)語(yǔ)
摘要:前端知識(shí)點(diǎn)總結(jié)新特性新的語(yǔ)義標(biāo)簽增強(qiáng)型表單音頻和視頻繪圖繪圖地理定位拖動(dòng)增強(qiáng)型表單新新的表單元素新特性數(shù)據(jù)列表本身不可見(jiàn)為提供輸入建議列表新特性進(jìn)度條左右晃動(dòng)進(jìn)度條具有指定進(jìn)度值進(jìn)度條新特性刻度尺用于標(biāo)示一個(gè)值所值的范圍不 前端知識(shí)點(diǎn)總結(jié)——H5 1.html5新特性 (1)新的語(yǔ)義標(biāo)簽 (2)增強(qiáng)型表單* (3)音頻和視頻 (4)Canvas繪圖 (5)SVG繪圖 (6)地...
摘要:是對(duì)標(biāo)準(zhǔn)的第五次修訂。新特性語(yǔ)義特性賦予網(wǎng)頁(yè)更好的意義和結(jié)構(gòu)文件類型聲明僅有一型。新的屬性用于與用于用于。索引數(shù)據(jù)庫(kù)從本質(zhì)上說(shuō),允許用戶在瀏覽器中保存大量的數(shù)據(jù)。 HTML5 是對(duì) HTML 標(biāo)準(zhǔn)的第五次修訂。其主要的目標(biāo)是將互聯(lián)網(wǎng)語(yǔ)義化,以便更好地被人類和機(jī)器閱讀,并同時(shí)提供更好地支持各種媒體的嵌入。HTML5 的語(yǔ)法是向后兼容的?,F(xiàn)在國(guó)內(nèi)普遍說(shuō)的 H5 是包括了 CSS3,Java...
摘要:是對(duì)標(biāo)準(zhǔn)的第五次修訂。新特性語(yǔ)義特性賦予網(wǎng)頁(yè)更好的意義和結(jié)構(gòu)文件類型聲明僅有一型。新的屬性用于與用于用于。索引數(shù)據(jù)庫(kù)從本質(zhì)上說(shuō),允許用戶在瀏覽器中保存大量的數(shù)據(jù)。 HTML5 是對(duì) HTML 標(biāo)準(zhǔn)的第五次修訂。其主要的目標(biāo)是將互聯(lián)網(wǎng)語(yǔ)義化,以便更好地被人類和機(jī)器閱讀,并同時(shí)提供更好地支持各種媒體的嵌入。HTML5 的語(yǔ)法是向后兼容的?,F(xiàn)在國(guó)內(nèi)普遍說(shuō)的 H5 是包括了 CSS3,Java...
摘要:是對(duì)標(biāo)準(zhǔn)的第五次修訂。新特性語(yǔ)義特性賦予網(wǎng)頁(yè)更好的意義和結(jié)構(gòu)文件類型聲明僅有一型。新的屬性用于與用于用于。索引數(shù)據(jù)庫(kù)從本質(zhì)上說(shuō),允許用戶在瀏覽器中保存大量的數(shù)據(jù)。 HTML5 是對(duì) HTML 標(biāo)準(zhǔn)的第五次修訂。其主要的目標(biāo)是將互聯(lián)網(wǎng)語(yǔ)義化,以便更好地被人類和機(jī)器閱讀,并同時(shí)提供更好地支持各種媒體的嵌入。HTML5 的語(yǔ)法是向后兼容的。現(xiàn)在國(guó)內(nèi)普遍說(shuō)的 H5 是包括了 CSS3,Java...
閱讀 2650·2021-11-22 09:34
閱讀 1047·2021-11-19 11:34
閱讀 2872·2021-10-14 09:42
閱讀 1586·2021-09-22 15:27
閱讀 2445·2021-09-07 09:59
閱讀 1808·2021-08-27 13:13
閱讀 3492·2019-08-30 11:21
閱讀 828·2019-08-29 18:35