AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁(yè) > 科技  > 軟件

HTML,無(wú)限可能!

來(lái)源: 責(zé)編: 時(shí)間:2024-05-20 08:54:01 185觀看
導(dǎo)讀隨在JavaScript日益成為Web開(kāi)發(fā)的基石,CSS不斷擴(kuò)展其功能邊界的同時(shí),HTML,雖然表面上似乎保持著穩(wěn)定的步伐,實(shí)際上卻蘊(yùn)含著巨大的潛力和待發(fā)掘的寶藏。為了深入探索HTML的當(dāng)前狀態(tài)與未來(lái)趨勢(shì),近期國(guó)外博主進(jìn)行 了 State of

隨在JavaScript日益成為Web開(kāi)發(fā)的基石,CSS不斷擴(kuò)展其功能邊界的同時(shí),HTML,雖然表面上似乎保持著穩(wěn)定的步伐,實(shí)際上卻蘊(yùn)含著巨大的潛力和待發(fā)掘的寶藏。為了深入探索HTML的當(dāng)前狀態(tài)與未來(lái)趨勢(shì),近期國(guó)外博主進(jìn)行 了 State of HTML 2023 的詳盡調(diào)查,并公布了引人注目的調(diào)查報(bào)告。trS28資訊網(wǎng)——每日最新資訊28at.com

這份報(bào)告聚焦于一系列新興的 HTML 特性,其廣泛的應(yīng)用和強(qiáng)大的功能令人眼前一亮。本文將不會(huì)詳細(xì)展開(kāi)整個(gè)調(diào)查報(bào)告,而是聚焦并介紹這些實(shí)用的 HTML 特性,帶你領(lǐng)略 HTML 的無(wú)限可能!trS28資訊網(wǎng)——每日最新資訊28at.com

查看  State of HTML 2023 調(diào)查報(bào)告:https://2023.stateofhtml.com/trS28資訊網(wǎng)——每日最新資訊28at.com

調(diào)查中包含的 HTML 功能和其他瀏覽器 API 使用率如下:trS28資訊網(wǎng)——每日最新資訊28at.com

圖片Image 1

srcset 和 sizes 屬性

srcset和sizes屬性用于實(shí)現(xiàn)響應(yīng)式圖像。這兩個(gè)屬性允許你提供多個(gè)不同尺寸或分辨率的圖像文件,瀏覽器將根據(jù)設(shè)備的像素密度、視口寬度和其他因素選擇最合適的圖像進(jìn)行加載。trS28資訊網(wǎng)——每日最新資訊28at.com

srcset

srcset屬性允許指定一組圖像源,每個(gè)源都帶有一個(gè)描述符(通常是像素密度描述符x或?qū)挾让枋龇鹷)。瀏覽器會(huì)根據(jù)這些描述符和當(dāng)前設(shè)備的特性(如像素密度或視口寬度)來(lái)選擇最合適的圖像。例如:trS28資訊網(wǎng)——每日最新資訊28at.com

<img src="small.jpg" alt="Responsive Image"     srcset="medium.jpg 1000w, large.jpg 2000w"     sizes="(max-width: 600px) 50vw, 100vw">

在這個(gè)例子中,srcset屬性指定了兩個(gè)額外的圖像源:medium.jpg和large.jpg。1000w和2000w是寬度描述符,表示這些圖像的寬度。瀏覽器將使用這些信息和sizes屬性來(lái)確定應(yīng)該加載哪個(gè)圖像。trS28資訊網(wǎng)——每日最新資訊28at.com

sizes

sizes屬性為瀏覽器提供了關(guān)于圖像預(yù)期顯示尺寸的信息。這個(gè)屬性通常與媒體查詢(xún)一起使用,以指定不同視口寬度下圖像的尺寸。瀏覽器會(huì)使用這些信息來(lái)選擇與srcset屬性中定義的圖像源相匹配的圖像。trS28資訊網(wǎng)——每日最新資訊28at.com

在上面的例子中,sizes屬性定義了兩個(gè)尺寸條件:trS28資訊網(wǎng)——每日最新資訊28at.com

  • 如果視口寬度最大為 600 像素(max-width: 600px),則圖像的寬度為視口寬度的 50%(50vw)。
  • 否則,圖像的寬度為視口的 100%(100vw)。

在上面的示例中,瀏覽器會(huì)執(zhí)行以下步驟來(lái)選擇要加載的圖像:trS28資訊網(wǎng)——每日最新資訊28at.com

  1. 檢查視口的寬度。
  2. 根據(jù) sizes 屬性中的媒體查詢(xún)確定圖像的預(yù)期尺寸。
  3. 根據(jù)圖像的預(yù)期尺寸和 srcset 屬性中的描述符選擇一個(gè)最合適的圖像源進(jìn)行加載。

例如,如果視口寬度為 800 像素,瀏覽器將選擇large.jpg圖像進(jìn)行加載,因?yàn)樗膶挾让枋龇?000w)與圖像的預(yù)期尺寸最為匹配。如果視口寬度為 400 像素,瀏覽器可能會(huì)選擇medium.jpg圖像進(jìn)行加載。如果瀏覽器不支持srcset和sizes屬性,它將回退到使用src屬性中指定的圖像(即small.jpg)。trS28資訊網(wǎng)——每日最新資訊28at.com

FormData API

FormData API 提供了一種表示表單數(shù)據(jù)的鍵值對(duì)集合的方式,并且可以輕松地使用該對(duì)象通過(guò)JavaScript 發(fā)送表單數(shù)據(jù)。trS28資訊網(wǎng)——每日最新資訊28at.com

以下是如何使用FormData API的基本步驟:trS28資訊網(wǎng)——每日最新資訊28at.com

  1. 創(chuàng)建FormData對(duì)象:可以使用new FormData()來(lái)創(chuàng)建一個(gè)空的FormData對(duì)象,或者傳入一個(gè)HTML表單元素(例如<form>)來(lái)自動(dòng)獲取表單中的所有數(shù)據(jù)。
// 創(chuàng)建一個(gè)空的FormData對(duì)象  const formData = new FormData(); // 使用HTML表單元素const formData = new FormData(document.getElementById('myForm'));
  1. 添加數(shù)據(jù):使用append()方法向FormData對(duì)象中添加數(shù)據(jù)。該方法接受兩個(gè)參數(shù),第一個(gè)參數(shù)是鍵名(字段名),第二個(gè)參數(shù)是值。如果指定的鍵名已經(jīng)存在,則新的值將被添加到已存在的值列表中。
formData.append('username', 'John');  formData.append('password', '123456');
  1. 發(fā)送數(shù)據(jù):在發(fā)送數(shù)據(jù)請(qǐng)求時(shí),可以將FormData對(duì)象作為數(shù)據(jù)參數(shù)傳遞。
// 使用Fetch API  fetch('/submit-form', {    method: 'POST',    body: formData  })  .then(response => response.json())  .then(data => console.log(data))  .catch((error) => console.error('Error:', error));

autocomplete 屬性

autocomplete 屬性主要用于 <form>、<input>、<select> 和 <textarea> 元素。這個(gè)屬性用于控制瀏覽器是否應(yīng)該自動(dòng)完成表單字段。它基于用戶(hù)之前輸入過(guò)的值來(lái)提供自動(dòng)完成功能。autocomplete 屬性有兩個(gè)可能的值:trS28資訊網(wǎng)——每日最新資訊28at.com

  • on:這是默認(rèn)值。如果設(shè)置了此值,瀏覽器會(huì)嘗試自動(dòng)完成表單字段。
  • off:如果設(shè)置了此值,瀏覽器將不會(huì)為表單字段提供自動(dòng)完成功能。

對(duì)于 <input> 元素,autocomplete 屬性特別適用于 text、search、url、telephone、email、password、date、month、week、time、datetime-local、number、range、color 等類(lèi)型。trS28資訊網(wǎng)——每日最新資訊28at.com

例如,如果想禁用一個(gè)文本輸入框的自動(dòng)完成功能,你可以這樣寫(xiě):trS28資訊網(wǎng)——每日最新資訊28at.com

<input type="text" name="username" autocomplete="off">

另外,對(duì)于密碼字段,有一個(gè)特殊的值 new-password,當(dāng)設(shè)置為這個(gè)值時(shí),瀏覽器將不會(huì)為密碼字段提供基于之前密碼的自動(dòng)完成建議。這通常用于新密碼的輸入字段,以防止瀏覽器自動(dòng)填充舊密碼。trS28資訊網(wǎng)——每日最新資訊28at.com

<details> 和 <summary> 是 HTML5 中引入的兩個(gè)元素,它們通常一起使用,用于創(chuàng)建用戶(hù)可以打開(kāi)和關(guān)閉的交互式小部件,以顯示或隱藏額外的詳細(xì)信息。trS28資訊網(wǎng)——每日最新資訊28at.com

  • <details> 標(biāo)簽用于定義用戶(hù)可見(jiàn)或隱藏的額外細(xì)節(jié)。默認(rèn)情況下,<details> 元素的內(nèi)容是隱藏的,除非設(shè)置了 open 屬性。任何類(lèi)型的內(nèi)容都可以放在 <details> 標(biāo)簽中。
  • <summary> 標(biāo)簽是 <details> 元素的第一個(gè)子元素,并為 <details> 元素定義一個(gè)可見(jiàn)的標(biāo)題。當(dāng)用戶(hù)點(diǎn)擊這個(gè)標(biāo)題時(shí),會(huì)顯示或隱藏 <details> 元素的內(nèi)容。
<details>    <summary>點(diǎn)擊這里查看更多信息</summary>    <p>這是隱藏的詳細(xì)信息。</p>  </details>

在這個(gè)示例中,用戶(hù)會(huì)看到“點(diǎn)擊這里查看更多信息”這樣的文本。當(dāng)他們點(diǎn)擊這個(gè)文本時(shí),會(huì)顯示出 <p> 標(biāo)簽中的隱藏內(nèi)容“這是隱藏的詳細(xì)信息。”。當(dāng)用戶(hù)再次點(diǎn)擊標(biāo)題時(shí),隱藏的內(nèi)容會(huì)再次被隱藏起來(lái)。trS28資訊網(wǎng)——每日最新資訊28at.com

這種交互方式使得 <details> 和 <summary> 元素在需要顯示額外信息但又不想一開(kāi)始就顯示所有信息的場(chǎng)景下非常有用。例如,在網(wǎng)頁(yè)上展示用戶(hù)協(xié)議、隱私政策、幫助文檔等長(zhǎng)篇內(nèi)容時(shí),可以使用這兩個(gè)元素來(lái)創(chuàng)建一個(gè)可展開(kāi)的面板,讓用戶(hù)選擇是否查看這些詳細(xì)信息。trS28資訊網(wǎng)——每日最新資訊28at.com

自定義元素

HTML 自定義元素是 Web 組件(Web Components)的一部分,它允許定義新的 HTML 元素及其行為。通過(guò)自定義元素,可以創(chuàng)建可復(fù)用的、封裝好的組件,這些組件可以在多個(gè)項(xiàng)目中重用,或者通過(guò)其他開(kāi)發(fā)者共享。trS28資訊網(wǎng)——每日最新資訊28at.com

定義

自定義元素的定義通常使用 class 擴(kuò)展 HTMLElement、HTMLUnknownElement 或其他 HTML 內(nèi)置元素類(lèi)。然后,需要調(diào)用 customElements.define() 方法來(lái)注冊(cè)這個(gè)新元素。trS28資訊網(wǎng)——每日最新資訊28at.com

下面是一個(gè)簡(jiǎn)單的例子,展示如何定義一個(gè)名為 my-custom-element 的自定義元素:trS28資訊網(wǎng)——每日最新資訊28at.com

class MyCustomElement extends HTMLElement {    constructor() {      // 必須首先調(diào)用 super 方法      super();        // 元素的功能代碼...      this.innerHTML = `<p>Hello, I'm a custom element!</p>`;    }      // 可以添加其他方法或?qū)傩?..  }    // 注冊(cè)自定義元素  window.customElements.define('my-custom-element', MyCustomElement);

使用

一旦注冊(cè)了自定義元素,就可以像使用其他 HTML 元素一樣在 HTML 中使用它:trS28資訊網(wǎng)——每日最新資訊28at.com

<!DOCTYPE html>  <html lang="en">  <head>    <meta charset="UTF-8">    <title>Custom Element Example</title>    <!-- 引入自定義元素的 JavaScript 文件 -->    <script src="my-custom-element.js"></script>  </head>  <body>      <!-- 使用自定義元素 -->    <my-custom-element></my-custom-element>    </body>  </html>

注意:trS28資訊網(wǎng)——每日最新資訊28at.com

  • 自定義元素的名稱(chēng)必須包含一個(gè)短橫線(-),這是為了避免與現(xiàn)有的和未來(lái)的 HTML 元素名稱(chēng)沖突。
  • 在 constructor 中,你必須首先調(diào)用 super() 方法。
  • 自定義元素的生命周期回調(diào)(如 connectedCallback、disconnectedCallback、adoptedCallback、attributeChangedCallback)可以在元素的不同階段執(zhí)行特定的操作。
  • 自定義元素可以使用 Shadow DOM 來(lái)封裝其內(nèi)部結(jié)構(gòu)和樣式,以避免與外部的樣式和腳本沖突。
  • 自定義元素可以定義自己的屬性和插槽,以提供更多的功能和靈活性。

資源加載優(yōu)先級(jí)

<link> 標(biāo)簽的 rel 屬性值中與資源加載優(yōu)先級(jí)相關(guān)的屬性包括:trS28資訊網(wǎng)——每日最新資訊28at.com

  1. prefetch:一種資源提示,告訴瀏覽器在將來(lái)可能需要某個(gè)資源,并且希望瀏覽器在空閑時(shí)間預(yù)取它。這可以用于提高頁(yè)面加載速度,特別是當(dāng)用戶(hù)預(yù)計(jì)會(huì)導(dǎo)航到需要該資源的頁(yè)面時(shí)。
<link rel="prefetch" >
  1. preload:一種資源提示,表示瀏覽器應(yīng)該預(yù)加載指定的資源。這通常用于告訴瀏覽器在頁(yè)面加載的早期階段就開(kāi)始下載某些資源,以便在用戶(hù)需要時(shí)它們可以更快地可用。通常用于預(yù)取用戶(hù)可能會(huì)導(dǎo)航到的下一個(gè)頁(yè)面的資源,以便在用戶(hù)點(diǎn)擊鏈接時(shí)更快地加載頁(yè)面。
<link rel="prefetch" href="path/to/next-page.html">
  1. dns-prefetch:一種鏈接類(lèi)型,它允許瀏覽器在頁(yè)面的其他資源開(kāi)始加載之前,在后臺(tái)執(zhí)行 DNS 查找。這可以加快頁(yè)面的后續(xù)加載,特別是當(dāng)頁(yè)面中的某些資源位于與頁(yè)面不同的域時(shí)。
<link rel="dns-prefetch" >
  1. modulepreload:一種鏈接類(lèi)型,用于預(yù)加載 ES6 模塊。它告訴瀏覽器在需要該模塊之前就開(kāi)始下載它,但并不會(huì)立即執(zhí)行。這可以提高模塊的加載速度,尤其是在模塊較大或網(wǎng)絡(luò)條件較差的情況下。
<link rel="modulepreload" href="path/to/module.js">

CSP

CSP 全稱(chēng)為 Content Security Policy,表示**內(nèi)容安全策略,**它是一個(gè)額外的安全層,用于幫助檢測(cè)和緩解某些類(lèi)型的攻擊,包括跨站腳本(XSS)和數(shù)據(jù)注入攻擊。這些攻擊主要用于實(shí)現(xiàn)數(shù)據(jù)竊取、網(wǎng)站破壞或惡意軟件分發(fā)。trS28資訊網(wǎng)——每日最新資訊28at.com

CSP的工作原理是允許網(wǎng)站管理員發(fā)送一個(gè)Content-Security-Policy HTTP頭部,這個(gè)頭部包含一份策略,策略規(guī)定了瀏覽器如何處理網(wǎng)頁(yè)的資源。例如,管理員可以設(shè)置一個(gè)策略,只允許瀏覽器加載同源的腳本,這樣即使黑客注入了一個(gè)惡意腳本,瀏覽器也不會(huì)執(zhí)行它。trS28資訊網(wǎng)——每日最新資訊28at.com

CSP不僅可以通過(guò)HTTP頭部來(lái)設(shè)置,也可以在HTML文檔中用標(biāo)簽來(lái)設(shè)置。當(dāng)HTTP頭部和標(biāo)簽同時(shí)定義了CSP時(shí),通常會(huì)優(yōu)先采用HTTP頭部的設(shè)置。trS28資訊網(wǎng)——每日最新資訊28at.com

CSP策略的內(nèi)容可以包括但不限于:trS28資訊網(wǎng)——每日最新資訊28at.com

  • script-src:定義針對(duì)JavaScript的加載策略。
  • style-src:定義針對(duì)樣式的加載策略。
  • media-src:定義針對(duì)多媒體的加載策略,例如音頻標(biāo)簽和視頻標(biāo)簽。

CSP本質(zhì)上是一種白名單機(jī)制,開(kāi)發(fā)者可以明確告訴瀏覽器哪些外部資源可以加載和執(zhí)行,以及可以從哪些URL加載這些資源。通過(guò)CSP,開(kāi)發(fā)者可以限制哪些資源(如JavaScript、CSS、圖像等)可以被加載,從哪些URL加載,從而提高網(wǎng)站的安全性。trS28資訊網(wǎng)——每日最新資訊28at.com

CSP最初被設(shè)計(jì)用來(lái)減少跨站點(diǎn)腳本攻擊(XSS),但后續(xù)版本還可以防止其他形式的攻擊,如點(diǎn)擊劫持。CSP已成為現(xiàn)代瀏覽器保護(hù)網(wǎng)站和Web應(yīng)用免受多種類(lèi)型攻擊的重要工具之一。trS28資訊網(wǎng)——每日最新資訊28at.com

<template> 標(biāo)簽用于定義可復(fù)制的模板結(jié)構(gòu),<template> 標(biāo)簽中的內(nèi)容不會(huì)在頁(yè)面加載時(shí)直接呈現(xiàn)。其用法如下:trS28資訊網(wǎng)——每日最新資訊28at.com

<template id="my-template">    <h1>Hello, world!</h1>    <p>This is my template.</p>  </template>

<template> 標(biāo)簽提供了一種在 HTML 文檔中直接定義模板的方式,這些模板可以在需要時(shí)被復(fù)制和插入到文檔的其他位置。這使得創(chuàng)建動(dòng)態(tài)的、交互式的網(wǎng)頁(yè)變得更加容易和高效。同時(shí),由于 <template> 標(biāo)簽中的內(nèi)容在頁(yè)面加載時(shí)不會(huì)呈現(xiàn),因此也不會(huì)對(duì)頁(yè)面的初始渲染造成任何影響。trS28資訊網(wǎng)——每日最新資訊28at.com

<dialog> 是一個(gè)語(yǔ)義化雙標(biāo)簽,用于表示一個(gè)對(duì)話(huà)框或其他交互式組件。這個(gè)標(biāo)簽可以創(chuàng)建一個(gè)交互式的模態(tài)對(duì)話(huà)框,即用戶(hù)不能與打開(kāi)對(duì)話(huà)框的頁(yè)面進(jìn)行交互,直到對(duì)話(huà)框關(guān)閉。模態(tài)對(duì)話(huà)框通常會(huì)帶有一個(gè)半透明的背景遮罩層。trS28資訊網(wǎng)——每日最新資訊28at.com

<dialog> 標(biāo)簽的基本用法如下:trS28資訊網(wǎng)——每日最新資訊28at.com

<dialog id="myDialog">    <p>這是一個(gè)對(duì)話(huà)框。</p>    <button id="closeButton">關(guān)閉</button>  </dialog>

Shadow DOM

Shadow DOM 是一種瀏覽器提供的技術(shù),它允許將一個(gè)獨(dú)立的 DOM(文檔對(duì)象模型)子樹(shù)附加到一個(gè)元素上,并將其與外部 DOM 隔離開(kāi)來(lái)。這樣可以確保子樹(shù)中的元素和樣式不會(huì)影響到外部 DOM,同時(shí)也可以為子樹(shù)中的元素提供獨(dú)立的樣式和事件處理機(jī)制。trS28資訊網(wǎng)——每日最新資訊28at.com

Shadow DOM 是 Web 組件技術(shù)的核心部分,旨在將組件的結(jié)構(gòu)、樣式和行為封裝在一個(gè)獨(dú)立的、隔離的 DOM 樹(shù)中,從而與主文檔的 DOM 樹(shù)相互隔離。這種封裝性使得開(kāi)發(fā)者可以創(chuàng)建可復(fù)用、獨(dú)立和高度封裝的組件,對(duì)于構(gòu)建復(fù)雜的 Web 應(yīng)用和在大型項(xiàng)目中使用組件化開(kāi)發(fā)非常有價(jià)值。trS28資訊網(wǎng)——每日最新資訊28at.com

Shadow DOM 的工作原理是,當(dāng)一個(gè)元素被附加了 Shadow DOM 后,瀏覽器會(huì)創(chuàng)建一個(gè)獨(dú)立的 DOM 子樹(shù),并將其附加到該元素上。這個(gè)子樹(shù)中的元素和樣式將被隔離在 Shadow DOM 中,不會(huì)影響到外部 DOM。同時(shí),Shadow DOM 中的元素也可以通過(guò)特定的機(jī)制與外部 DOM 進(jìn)行通信。trS28資訊網(wǎng)——每日最新資訊28at.com

命名插槽

在 Web Components 的上下文中,slot="slot_name" 是一種用于內(nèi)容分發(fā)或內(nèi)容投影的機(jī)制。它允許將內(nèi)容從父元素(即宿主元素)傳遞到子元素(通常是自定義元素)的特定位置。trS28資訊網(wǎng)——每日最新資訊28at.com

具體來(lái)說(shuō),當(dāng)在自定義元素內(nèi)部使用 <slot> 標(biāo)簽時(shí),可以為其指定一個(gè) name 屬性。然后,在父元素中,可以使用帶有 slot 屬性的元素來(lái)指定哪些內(nèi)容應(yīng)該被投影到這個(gè)命名的 <slot> 中。trS28資訊網(wǎng)——每日最新資訊28at.com

<!-- 自定義元素 my-component 的模板 -->  <template id="my-component-template">    <div>      <h2>標(biāo)題</h2>      <slot name="content"></slot> <!-- 命名的 slot -->      <p>這是一個(gè)自定義組件的底部?jī)?nèi)容。</p>    </div>  </template>    <!-- 使用自定義元素并傳遞內(nèi)容 -->  <my-component>    <p slot="content">這是一些被投影到 content slot 的內(nèi)容。</p>    <!-- 注意:沒(méi)有指定 slot 的內(nèi)容不會(huì)被投影到任何 slot,而是被忽略 -->  </my-component>    <!-- JavaScript 用于定義自定義元素(簡(jiǎn)化版) -->  <script>    class MyComponent extends HTMLElement {      constructor() {        super();        const shadowRoot = this.attachShadow({mode: 'open'});        const template = document.querySelector('#my-component-template');        shadowRoot.appendChild(template.content.cloneNode(true));      }    }    window.customElements.define('my-component', MyComponent);  </script>

在上面的例子中,<p slot="content"> 元素的內(nèi)容會(huì)被投影到 <slot name="content"></slot> 的位置。注意,只有帶有 slot="content" 屬性的元素才會(huì)被投影到該位置。沒(méi)有指定 slot 屬性的內(nèi)容在這種情況下會(huì)被忽略。trS28資訊網(wǎng)——每日最新資訊28at.com

<datalist> 用于為 <input> 元素提供預(yù)定義的選項(xiàng)列表。<datalist> 元素與 <input> 元素的 list 屬性配合使用,當(dāng)用戶(hù)開(kāi)始在 <input> 框中鍵入時(shí),瀏覽器會(huì)基于 <datalist> 中定義的 <option> 元素來(lái)提供自動(dòng)完成建議。trS28資訊網(wǎng)——每日最新資訊28at.com

<datalist> 元素本身并不顯示任何內(nèi)容,它只是一個(gè)包含 <option> 元素的容器,這些 <option> 元素定義了可能的輸入值。然后,通過(guò) <input> 元素的 list 屬性,將 <input> 元素與 <datalist> 元素關(guān)聯(lián)起來(lái)。trS28資訊網(wǎng)——每日最新資訊28at.com

<label for="browsers">選擇一個(gè)瀏覽器:</label>    <input type="text" id="browsers" name="browsers" list="browser-list">    <datalist id="browser-list">    <option value="Chrome">    <option value="Firefox">    <option value="Safari">    <option value="Opera">    <option value="Internet Explorer">  </datalist>

在這個(gè)例子中,<input> 元素有一個(gè) list 屬性,其值為 browser-list,這與 <datalist> 元素的 id 屬性相匹配。因此,當(dāng)用戶(hù)在 <input> 框中鍵入時(shí),瀏覽器會(huì)顯示一個(gè)下拉列表,其中包含 <datalist> 元素中定義的瀏覽器名稱(chēng)選項(xiàng)。trS28資訊網(wǎng)——每日最新資訊28at.com

HTML 媒體捕獲

HTML媒體捕獲是HTML表單的一個(gè)擴(kuò)展,它允許用戶(hù)通過(guò)一個(gè)文件上傳控件方便地訪問(wèn)設(shè)備的媒體捕獲功能,如照相機(jī)、麥克風(fēng)等。這個(gè)API通過(guò)元素的capture屬性來(lái)實(shí)現(xiàn),可以直接從設(shè)備的攝像頭或麥克風(fēng)獲取媒體數(shù)據(jù)。它的使用非常簡(jiǎn)單,只需要在元素中設(shè)置capture屬性為"camera"或"microphone"即可。trS28資訊網(wǎng)——每日最新資訊28at.com

HTML媒體捕獲的API使得開(kāi)發(fā)者能夠更容易地獲取用戶(hù)的媒體輸入,并將其集成到Web應(yīng)用中。例如,可以使用這個(gè)API來(lái)創(chuàng)建一個(gè)簡(jiǎn)單的照片上傳功能,讓用戶(hù)能夠直接從他們的設(shè)備攝像頭拍攝照片并上傳到網(wǎng)站。同樣,也可以用于音頻錄制或視頻錄制等場(chǎng)景。trS28資訊網(wǎng)——每日最新資訊28at.com

<input type="file" accept="image/*" capture="camera">

在這個(gè)例子中,<input type="file" accept="image/*" capture="camera"> 是一個(gè)帶有 capture 屬性的文件輸入控件。accept="image/*" 表示該控件只接受圖片文件,而 capture="camera" 則指示瀏覽器使用設(shè)備的攝像頭來(lái)捕獲照片。trS28資訊網(wǎng)——每日最新資訊28at.com

controlslist 屬性

controlslist 是 <video> 和 <audio> 元素的一個(gè)屬性,它允許開(kāi)發(fā)者更細(xì)致地控制視頻或音頻播放器的默認(rèn)控件的顯示與隱藏。通過(guò) controlslist 屬性,你可以指定哪些控件應(yīng)該被顯示或隱藏。trS28資訊網(wǎng)——每日最新資訊28at.com

這個(gè)屬性接受一系列的值,每個(gè)值對(duì)應(yīng)一個(gè)控件。下面是一些可能的值:trS28資訊網(wǎng)——每日最新資訊28at.com

  • nodownload:禁止顯示下載按鈕。
  • nofullscreen:禁止顯示全屏按鈕。
  • noremoteplayback:禁止顯示遠(yuǎn)程播放按鈕(例如,在電視上播放)。
  • noplaybackrate:禁止顯示播放速率按鈕(例如,加快或減慢播放速度)。
  • nodirection(對(duì)于視頻):禁止顯示方向按鈕(例如,在360度視頻中使用的方向控件)。

可以通過(guò)組合這些值來(lái)定義你想要的控件列表。例如,如果你想要隱藏下載、全屏和遠(yuǎn)程播放按鈕,可以將 controlslist 屬性的值設(shè)置為 "nodownload nofullscreen noremoteplayback"。trS28資訊網(wǎng)——每日最新資訊28at.com

<video src="example.mp4" controls controlslist="nodownload nofullscreen">  </video>

Web Share API

Web Share API 是一個(gè)允許網(wǎng)頁(yè)調(diào)用操作系統(tǒng)的分享接口的API,它實(shí)質(zhì)上是 Web App 與本機(jī)的應(yīng)用交換信息的一種方式。通過(guò)使用 Web Share API,網(wǎng)頁(yè)可以將文本、鏈接甚至文件分享到設(shè)備上安裝的其他應(yīng)用。trS28資訊網(wǎng)——每日最新資訊28at.com

if (navigator.share) {    navigator.share({      title: '分享的標(biāo)題',      text: '這是一段分享的文本描述',      url: 'https://example.com/share' // 要分享的鏈接    })    .then(() => console.log('分享成功!'))    .catch(error => console.log('分享失敗:', error));  } else {    console.log('當(dāng)前瀏覽器不支持 Web Share API');  }

<search>元素是一個(gè)用于封裝與搜索或過(guò)濾操作相關(guān)的表單控件和內(nèi)容的容器。它允許開(kāi)發(fā)者在語(yǔ)義上標(biāo)識(shí)這些內(nèi)容為搜索或過(guò)濾功能,而不是用來(lái)展示搜索結(jié)果。搜索結(jié)果應(yīng)作為頁(yè)面主要內(nèi)容的一部分展示,而搜索建議等輔助功能可以包含在<search> 元素中。這個(gè)元素僅支持全局屬性,不包含特定的屬性。trS28資訊網(wǎng)——每日最新資訊28at.com

<header>  <h1>Movie website</h1>  <search>    <form action="./search/">      <label for="movie">Find a Movie</label>      <input type="search" id="movie" name="q" />      <button type="submit">Search</button>    </form>  </search></header>

fetchpriority 屬性

fetchPriority** **屬性主要用于 HTMLIFrameElement,表示給瀏覽器的提示,即瀏覽器應(yīng)該如何優(yōu)先獲取iframe文檔相對(duì)于其他iframe文檔。trS28資訊網(wǎng)——每日最新資訊28at.com

fetchPriority 屬性值包括:trS28資訊網(wǎng)——每日最新資訊28at.com

  • high:以相對(duì)于其他iframe文檔的高優(yōu)先級(jí)獲取iframe文檔。
  • low:以相對(duì)于其他iframe文檔的低優(yōu)先級(jí)獲取iframe文檔。
  • auto:默認(rèn)模式,表示不優(yōu)先獲取優(yōu)先級(jí),由瀏覽器決定什么對(duì)用戶(hù)最有利。

此外,fetchPriority屬性還可以用于<img>元素和<link rel="preload">元素,以調(diào)整圖片或資源的加載優(yōu)先級(jí)。例如,如果你有一個(gè)在CSS文件中非常重要的圖片,需要高優(yōu)先級(jí)加載,可以這樣設(shè)置:trS28資訊網(wǎng)——每日最新資訊28at.com

<link rel="preload" href="./important-source.png" as="image" fetchPriority="high" />

或者,如果想降低圖片的請(qǐng)求優(yōu)先級(jí),可以這樣設(shè)置:trS28資訊網(wǎng)——每日最新資訊28at.com

<img src="example.png" fetchPriority="low" />

File System Access API

文件系統(tǒng)訪問(wèn) API(File System Access API)是一種Web API,它允許網(wǎng)頁(yè)上的JavaScript代碼請(qǐng)求用戶(hù)選擇本地文件或目錄,并對(duì)其進(jìn)行讀取和寫(xiě)入操作。這個(gè)API的引入是為了增強(qiáng)Web應(yīng)用與本地文件系統(tǒng)的交互能力,同時(shí)保持用戶(hù)的安全和隱私。trS28資訊網(wǎng)——每日最新資訊28at.com

<button onclick="handleFiles()">選擇文件并讀取</button>  <pre id="output"></pre>    <script>  async function handleFiles() {      try {          // 顯示文件選擇器并請(qǐng)求用戶(hù)選擇一個(gè)文件          const [handle] = await window.showOpenFilePicker();            // 創(chuàng)建一個(gè)文件系統(tǒng)文件句柄的引用          const file = await handle.getFile();            // 讀取文件內(nèi)容          const reader = new TextDecoder().decode(await file.arrayBuffer());            // 在頁(yè)面上顯示文件內(nèi)容          document.getElementById('output').textContent = reader;        } catch (err) {          console.error('Error:', err);      }  }  </script>

inert 屬性

inert 是一個(gè)實(shí)驗(yàn)性的屬性,旨在使元素及其后代變得非交互,并且對(duì)于輔助技術(shù)(如屏幕閱讀器)而言是不可見(jiàn)的。這個(gè)屬性最初是作為 Web Components 的一部分被提出的,但也可以用于任何 HTML 元素。trS28資訊網(wǎng)——每日最新資訊28at.com

<div id=app inert class=loading>  ...</div>

Popover API

Popover API 是一種內(nèi)置的彈框能力,它提供了一種標(biāo)準(zhǔn)、一致、靈活的機(jī)制,用于在其他頁(yè)面內(nèi)容之上顯示彈出窗口內(nèi)容。Popover API 現(xiàn)在已全面支持各種主流瀏覽器。trS28資訊網(wǎng)——每日最新資訊28at.com

Popover API 具有多種特性,包括:trS28資訊網(wǎng)——每日最新資訊28at.com

  1. 彈窗的顯示和隱藏:可以通過(guò)設(shè)置屬性(如 popovertarget 和 popovertargetaction)來(lái)控制彈窗的顯示和隱藏。例如,hide 可以設(shè)置 popovertarget 為 "none" 以隱藏彈窗,而 show 可以設(shè)置 popovertarget 為 "block" 以顯示彈窗。
  2. 彈窗的交互性:具有“輕觸關(guān)閉”的功能,即點(diǎn)擊彈窗之外的區(qū)域可以關(guān)閉彈窗。同時(shí),也可以通過(guò)鍵盤(pán)操作(如按 esc 鍵)來(lái)關(guān)閉彈窗。
  3. 彈窗的樣式和內(nèi)容:彈出內(nèi)容既可以使用 HTML 屬性進(jìn)行聲明控制,也可以通過(guò) JavaScript 進(jìn)行控制。例如,可以使用 CSS 偽元素(如 ::backdrop)和偽類(lèi)(如 :popover-open)來(lái)改變彈窗的樣式。

在創(chuàng)建彈出式窗口時(shí),只需要一個(gè)用于觸發(fā)彈出式窗口的按鈕以及一個(gè)要觸發(fā)的元素。首先,在要作為彈出式窗口的元素上設(shè)置 popover 屬性。然后,在彈出式窗口元素上添加一個(gè)唯一的 id。最后,將按鈕的 popovertarget 設(shè)置為彈出式窗口元素的 id 的值,以將按鈕連接到彈出式窗口。trS28資訊網(wǎng)——每日最新資訊28at.com

<button popovertarget="mypopover">Toggle the popover</button><div id="mypopover" popover>Popover content</div>

File Handling API

File Handling API 允許已安裝的 Progressive Web App(PWA)向操作系統(tǒng)注冊(cè)文件處理程序。注冊(cè)后,用戶(hù)可以直接點(diǎn)擊一個(gè)文件,然后使用已安裝的PWA來(lái)打開(kāi)它。這對(duì)于那些與文件交互的PWA程序,如圖像編輯器、集成開(kāi)發(fā)環(huán)境(IDE)、文本編輯器等,特別有用。trS28資訊網(wǎng)——每日最新資訊28at.com

為了實(shí)現(xiàn)這個(gè)功能,你要更新 web app manifest,添加一個(gè)file_handlers數(shù)組。這個(gè)數(shù)組應(yīng)包含有關(guān)你的PWA可以處理的文件類(lèi)型的詳細(xì)信息。需要指定以下信息:trS28資訊網(wǎng)——每日最新資訊28at.com

  • 要打開(kāi)的URL:當(dāng)用戶(hù)點(diǎn)擊一個(gè)文件時(shí),這個(gè)URL將被調(diào)用,并傳入文件的詳細(xì)信息。
  • MIME 類(lèi)型:你的PWA可以處理的文件的MIME類(lèi)型。
  • 文件類(lèi)型的圖標(biāo):用于在文件瀏覽器中顯示該文件類(lèi)型的圖標(biāo)。
  • 啟動(dòng)類(lèi)型:定義是否應(yīng)在單個(gè)客戶(hù)端或多個(gè)客戶(hù)端中打開(kāi)多個(gè)文件。

Launch Handler API

Launch Handler API 允許控制網(wǎng)頁(yè)應(yīng)用的啟動(dòng)方式。具體來(lái)說(shuō),這個(gè)API可以控制應(yīng)用程序是在現(xiàn)有窗口打開(kāi),還是在新窗口中打開(kāi),以及是否將所選窗口導(dǎo)向至啟動(dòng)網(wǎng)址。trS28資訊網(wǎng)——每日最新資訊28at.com

目前,它主要包含一個(gè) client_mode 字段,用于控制應(yīng)用程序是在現(xiàn)有Web應(yīng)用客戶(hù)端中啟動(dòng),還是在新客戶(hù)端中啟動(dòng)。trS28資訊網(wǎng)——每日最新資訊28at.com

"launch_handler": {  "client_mode": "focus-existing"}"launch_handler": {  "client_mode": ["focus-existing", "auto"]}

HTML Modules

HTML Modules 允許開(kāi)發(fā)者通過(guò) JavaScript 的 import 語(yǔ)句導(dǎo)入 HTML 文件,并直接訪問(wèn)其內(nèi)部的元素以及 JavaScript 導(dǎo)出。trS28資訊網(wǎng)——每日最新資訊28at.com

<script type="module">  import { TabList } from "./tablist.html" with { type: 'html' };  customElements.define("tab-list", TabList);</script>

blocking="render"

<script> 標(biāo)簽 blocking 屬性明確指示在獲取腳本時(shí)應(yīng)該阻塞某些操作。需要被阻塞的操作必須是一個(gè)由以下列出的阻塞標(biāo)記組成的、由空格分隔的列表。當(dāng)屬性值為 render 時(shí),將阻塞屏幕上的內(nèi)容渲染。使用 blocking="render" 指定資源(如腳本、樣式表等)應(yīng)在加載完成前阻塞渲染。trS28資訊網(wǎng)——每日最新資訊28at.com

<script blocking="render" async src="async-script.js"></script>

ElementInternals API

ElementInternals API 是 Web Components 規(guī)范中的一部分,特別是與自定義元素(Custom Elements)的表單相關(guān)功能有關(guān)。這個(gè) API 提供了一種方式,使得自定義元素(特別是那些作為表單控件的自定義元素)可以暴露它們的內(nèi)部狀態(tài)給表單處理邏輯,同時(shí)保持與原生表單元素的兼容性和互操作性。trS28資訊網(wǎng)——每日最新資訊28at.com

ElementInternals 接口允許自定義元素內(nèi)部實(shí)現(xiàn)一些標(biāo)準(zhǔn)表單控件的行為,如驗(yàn)證、報(bào)告有效性、設(shè)置默認(rèn)值等,而無(wú)需手動(dòng)模擬這些行為。trS28資訊網(wǎng)——每日最新資訊28at.com

以下是一些 ElementInternals API 的主要特性和用途:trS28資訊網(wǎng)——每日最新資訊28at.com

  • 表單關(guān)聯(lián):通過(guò) ElementInternals,自定義元素可以與表單進(jìn)行關(guān)聯(lián),就像原生表單控件一樣。
  • 驗(yàn)證:ElementInternals 提供了設(shè)置和檢查自定義元素驗(yàn)證狀態(tài)的方法,如 setValidity()、checkValidity() 和 reportValidity()。
  • 值管理:可以通過(guò) ElementInternals 的 value 和 valueAsNumber 屬性來(lái)設(shè)置和獲取自定義元素的值。
  • 默認(rèn)值和標(biāo)簽:ElementInternals 允許設(shè)置和獲取默認(rèn)值(defaultValue)以及標(biāo)簽(label),這對(duì)于表單控件來(lái)說(shuō)非常有用。
  • 表單提交:當(dāng)自定義元素作為表單的一部分被提交時(shí),ElementInternals 允許控制元素的值是否被包含在提交的數(shù)據(jù)中。
  • 錯(cuò)誤消息:通過(guò) setCustomValidity()方法,可以為自定義元素設(shè)置自定義驗(yàn)證錯(cuò)誤消息。

focusgroup 屬性

使用 focusgroup 屬性,可以通過(guò)鍵盤(pán)上的箭頭鍵,在一組可聚焦元素之間實(shí)現(xiàn)鍵盤(pán)焦點(diǎn)導(dǎo)航。trS28資訊網(wǎng)——每日最新資訊28at.com

<div focusgroup="wrap horizontal">  	<!-- 子元素 -->  </div>

Window Controls Overlay API

Window Controls Overlay API 允許安裝在桌面操作系統(tǒng)上的漸進(jìn)式應(yīng)用隱藏默認(rèn)的窗口標(biāo)題欄,并在應(yīng)用窗口的整個(gè)區(qū)域上疊加自定義內(nèi)容,從而將最大化、最小化和關(guān)閉等控制按鈕融入一個(gè)疊加層中,實(shí)現(xiàn)更加自定義和一體化的界面設(shè)計(jì)。trS28資訊網(wǎng)——每日最新資訊28at.com

Badging API

Badging API 定義了一個(gè) API,允許已安裝的 web 應(yīng)用設(shè)置應(yīng)用程序徽章。這些徽章通常顯示在設(shè)備主屏幕或應(yīng)用程序停靠欄上的應(yīng)用圖標(biāo)旁邊。trS28資訊網(wǎng)——每日最新資訊28at.com

Badging API 提供了一種方法,讓 web 開(kāi)發(fā)者可以為文檔或應(yīng)用程序設(shè)置徽章,徽章可以在不顯示更打擾的通知的情況下,通知用戶(hù)狀態(tài)的變化。一個(gè)常見(jiàn)的使用場(chǎng)景是,具有消息功能的應(yīng)用程序可能會(huì)使用徽章來(lái)在應(yīng)用程序圖標(biāo)上顯示有新消息到來(lái)。trS28資訊網(wǎng)——每日最新資訊28at.com

這個(gè) API 只在安全的上下文(HTTPS)中可用,并且可以在 Web Worker 內(nèi)使用。通過(guò) Badging API,用戶(hù)代理可以解釋并以與其他 UI 部分相匹配的方式顯示徽章,從而提供了一種更優(yōu)雅的方式來(lái)表示狀態(tài)。trS28資訊網(wǎng)——每日最新資訊28at.com

CustomElementRegistry

CustomElementRegistry 是一個(gè)對(duì)象,它提供了向 HTML/DOM 添加具有自定義邏輯的自己元素的方法。這個(gè)對(duì)象的主要作用是給頁(yè)面注冊(cè)一個(gè)自定義標(biāo)簽,并獲取已注冊(cè)的 Custom Elements 的相關(guān)信息。trS28資訊網(wǎng)——每日最新資訊28at.com

CustomElementRegistry 對(duì)象包含了一些方法,如 define(),可以用來(lái)注冊(cè)新的自定義元素。你可以通過(guò) window.customElements 屬性來(lái)獲取 CustomElementRegistry 對(duì)象的實(shí)例。trS28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-89231-0.htmlHTML,無(wú)限可能!

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: Python 代碼格式化的十個(gè)工具與技巧

下一篇: 相關(guān)政策松動(dòng),臺(tái)積電有望使用更多核電來(lái)制造芯片

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • 鴻蒙OS 4.0公測(cè)機(jī)型公布:甚至連nova6都支持

    華為全新的HarmonyOS 4.0操作系統(tǒng)將于今天下午正式登場(chǎng),官方在發(fā)布會(huì)之前也已經(jīng)正式給出了可升級(jí)的機(jī)型產(chǎn)品,這意味著這些機(jī)型會(huì)率先支持升級(jí)享用。這次的HarmonyOS 4.0支持
  • K60 Pro官方停產(chǎn) 第三方瞬間漲價(jià)

    雖然沒(méi)有官方宣布,但Redmi的一些高管也已經(jīng)透露了,Redmi K60 Pro已經(jīng)停產(chǎn)且不會(huì)補(bǔ)貨,這一切都是為了即將到來(lái)的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機(jī)在停產(chǎn)之后
  • 一加Ace2 Pro官宣:普及16G內(nèi)存 引領(lǐng)24G

    一加官方今天繼續(xù)為本月發(fā)布的新機(jī)一加Ace2 Pro帶來(lái)預(yù)熱,公布了內(nèi)存方面的信息。“淘汰 8GB ,12GB 起步,16GB 普及,24GB 引領(lǐng),還有呢?#一加Ace2Pro#,2023 年 8 月,敬請(qǐng)期待。”同時(shí)
  • 從 Pulsar Client 的原理到它的監(jiān)控面板

    背景前段時(shí)間業(yè)務(wù)團(tuán)隊(duì)偶爾會(huì)碰到一些 Pulsar 使用的問(wèn)題,比如消息阻塞不消費(fèi)了、生產(chǎn)者消息發(fā)送緩慢等各種問(wèn)題。雖然我們有個(gè)監(jiān)控頁(yè)面可以根據(jù) topic 維度查看他的發(fā)送狀態(tài),
  • 一文搞定Java NIO,以及各種奇葩流

    大家好,我是哪吒。很多朋友問(wèn)我,如何才能學(xué)好IO流,對(duì)各種流的概念,云里霧里的,不求甚解。用到的時(shí)候,現(xiàn)百度,功能雖然實(shí)現(xiàn)了,但是為什么用這個(gè)?不知道。更別說(shuō)效率問(wèn)題了~下次再遇到,
  • iQOO Neo8系列新品發(fā)布會(huì)

    旗艦雙芯 更強(qiáng)更Pro
  • 2022爆款:ROG魔霸6 冰川散熱系統(tǒng)持續(xù)護(hù)航

    喜逢開(kāi)學(xué)季,各大商家開(kāi)始推出自己的新產(chǎn)品,進(jìn)行打折促銷(xiāo)活動(dòng)。對(duì)于忠實(shí)的端游愛(ài)好者來(lái)說(shuō),能夠擁有一款夢(mèng)寐以求的筆記本電腦是一件十分開(kāi)心的事。但是現(xiàn)在的
  • 由于成本持續(xù)增加,筆記本產(chǎn)品價(jià)格預(yù)計(jì)將明顯上漲

    根據(jù)知情人士透露,由于材料、物流等成本持續(xù)增加,筆記本產(chǎn)品價(jià)格預(yù)計(jì)將在2021年下半年有明顯上漲。進(jìn)入6月下旬以來(lái),全球半導(dǎo)體芯片缺貨情況加劇,顯卡、處理器
  • 電博會(huì)與軟博會(huì)實(shí)現(xiàn)"線下+云端"的雙線融合

    在本次“電博會(huì)”與“軟博會(huì)”雙展會(huì)利好條件的加持下,既可以發(fā)揮展會(huì)拉動(dòng)人流、信息流、資金流實(shí)現(xiàn)快速交互流動(dòng)的作用,繼而推動(dòng)區(qū)域經(jīng)濟(jì)良性發(fā)展;又可以聚
Top