HTML 5.2有哪些新特性?

2021-02-28    分類: 網(wǎng)站建設(shè)

原生的

元素

在 HTML 5.2 的所有變化里我感到最為激動的就是引入了

元素,實現(xiàn)了瀏覽器原生的對話框。對話框在 web 開發(fā)中非常常見,但是現(xiàn)在每個實現(xiàn)都不太一樣。另一方面,實現(xiàn)一個支持無障礙化的對話框很難,實際上,現(xiàn)在 web 上使用的大多數(shù)對話框?qū)τ谝曈X障礙人士來說都是難以使用的。

新引入的

首先,使用


默認(rèn)情況下,對話框是不可見的,除非你設(shè)置了open屬性。


open屬性可以通過 HTMLDialogElement上的 show()和close()方法來改變。


目前,Chrome 已經(jīng)支持了

元素,而在 Firefox 中可以通過配置打開這一特性。具體情況可以查看 https://caniuse.com/#feat=dialog。

在 iframe 里使用支付請求 API

支付請求 API 是由瀏覽器原生提供支付方式,旨在為用戶在 web 上進(jìn)行支付提供一個標(biāo)準(zhǔn)而且一致的方法。它讓瀏覽器提供統(tǒng)一一致的界面來搜集用戶的支付信息,而不是讓用戶填寫各個網(wǎng)站自己的支付表單。

在 HTML 5.2 之前,支付請求 API 不能在 iframe 中 使用。這使得那些第三方提供的嵌入式支付解決方案(例如 Stripe、Paystack)完全無法利用這個 API,因為它們的支付接口都是需要在一個 iframe 中進(jìn)行處理的。

HTML 5.2 為 iframe 引入了一個 allowpaymentrequest 屬性,設(shè)置這個屬性就可以允許 iframe 中使用支付請求 API 了。


為蘋果設(shè)備定義不同尺寸的圖標(biāo)

通過在 HTML 文檔的頭部使用 ,我們可以定義網(wǎng)頁的圖標(biāo)。同時,還可以使用 sizes屬性來定義多個不同尺寸的圖標(biāo)。


雖然這個定義完全是建議性的,但它允許瀏覽器來自主決定使用哪個圖標(biāo)。尤其是像現(xiàn)在大多數(shù)設(shè)備的最優(yōu)圖標(biāo)尺寸都不一樣,只有瀏覽器自己才知道怎樣的圖標(biāo)尺寸更為合適。

在 HTML 5.2 以前, sizes 屬性僅僅當(dāng) link 標(biāo)簽的 rel 屬性為 icon 時才視為有效。可是,蘋果的 iOS 設(shè)備并不支持這種 sizes 屬性,它引入了一個私有的 rel 值 apple-touch-icon,用于定義網(wǎng)頁在蘋果設(shè)備上的圖標(biāo)。

在 HTML 5.2 中,規(guī)范的這一限制被去除,當(dāng) rel 為 icon 或 apple-touch-icon 時都可以使用 sizes 屬性。

新的有效寫法

除了引入一些新特性,HTML 5.2 中也把一些之前被規(guī)范認(rèn)為無效的 HTML 寫法變成有效。

多個

元素

元素用于表達(dá)網(wǎng)頁的主體內(nèi)容。對于在多個網(wǎng)頁中會反復(fù)出現(xiàn)的內(nèi)容,我們可以把它們放在 header、section 或者別的元素中,但
元素是被設(shè)計用于專門放置頁面上特定且唯一的內(nèi)容的。因此,在 HTML 5.2 之前,規(guī)范要求

元素在頁面的 DOM 結(jié)構(gòu)中只能出現(xiàn)一次。

可是隨著單頁應(yīng)用的流行,我們難以再去堅持這一準(zhǔn)則??梢栽O(shè)想會有這樣一種情況:DOM 中有需要有多個

元素,但在同一時間用戶只會看到其中一個。

在 HTML 5.2 中,現(xiàn)在只要能保證用戶同時只能看到一個

元素,我們就可以在頁面中多次使用這個標(biāo)簽。其它不顯示的
元素必須通過 hidden 屬性設(shè)置為隱藏。


我們都很清楚利用 CSS 有多種辦法可以隱藏元素??墒菍τ陧撁嫔系亩鄠€

元素,我們必須用 hidden 屬性將目前不需要顯示的元素進(jìn)行隱藏。任何別的方法,比如 display:none; 或者 visibility:hidden;,都會被規(guī)范認(rèn)為是無效的。

在 中定義樣式

一般情況下,我們都會使用