當前位置:
首頁 > 知識 > HTML 自定義元素教程

HTML 自定義元素教程

組件是Web開發的方向,現在的熱點是JavaScript組件,但是HTML組件未來可能更有希望。

本文就介紹HTML組件的基礎知識:自定義元素(custom elements)。

瀏覽器處理

我們一般都使用標準的HTML元素。

上面代碼中,

就是標準的HTML元素。

如果使用非標準的自定義元素,會有什麼結果?

上面代碼中,就是非標準元素,瀏覽器不認識它。這段代碼的運行結果是,瀏覽器照常顯示Hello World,這說明瀏覽器並沒有過濾這個元素。

現在,為自定義元素加上樣式。

運行結果如下。

接著,使用腳本操作這個元素。

運行結果如下。

這說明,瀏覽器對待自定義元素,就像對待標準元素一樣,只是沒有默認的樣式和行為。這種處理方式是寫入HTML5標準的。

"User agents must treat elements and attributes that they do not understand as semantically neutral; leaving them in the DOM (for DOM processors), and styling them according to CSS (for CSS processors), but not inferring any meaning from them."

上面這段話的意思是,瀏覽器必須將自定義元素保留在DOM之中,但不會任何語義。除此之外,自定義元素與標準元素都一致。

事實上,瀏覽器提供了一個HTMLUnknownElement對象,所有自定義元素都是該對象的實例。

上面代碼中,tabs是一個自定義元素,同時繼承了

HTMLUnknownElement

和HTMLElement介面。

HTML import

有了自定義元素,就可以寫出語義性非常好的HTML代碼。

上面的代碼,一眼就能看出語義。

如果將元素的樣式與腳本,封裝在一個HTML文件share-buttons.html之中,這個元素就可以復用了。

使用的時候,先引入share-buttons.html。

然後,就可以在網頁中使用了。

HTML imports的更多用法可以參考教程(1,2)。目前只有 Chrome 瀏覽器支持這個語法。

Custom Elements 標準

HTML5標準規定了自定義元素是合法的。然後,W3C就為自定義元素制定了一個單獨的Custom Elements標準。

它與其他三個標準放在一起——HTML Imports,HTML Template、Shadow DOM——統稱為Web Components規範。

目前,這個規範只有Chrome瀏覽器支持。

Custom Elements標準對自定義元素的名字做了限制。

"自定義元素的名字必須包含一個破折號(-)所以、和都是正確的名字,而和是不正確的。這樣的限制使得HTML解析器可以分辨哪些是標準元素,哪些是自定義元素。"

注意,一旦名字之中使用了破折號,自定義元素就不是HTMLUnknownElement的實例了。

Custom Elements標準規定了,自定義元素的定義可以使用ES6的class語法。

上面代碼中,原生的

window.customElements

對象的define方法用來定義Custom Element。

該方法接受兩個參數,第一個參數是自定義元素的名字,第二個參數是一個ES6的class。

這個class使用get和set方法定義Custom Element的某個屬性。

有了這個定義,網頁之中就可以插入了。

處理腳本如下。

運行結果如下。

ES6 Class的一個好處是,可以很容易地寫出繼承類。

今天的教程就到這裡,更多用法請參考谷歌的官方教程。

參考鏈接

1. John Negoita, Extending HTML by Creating Custom Tags

https://code.tutsplus.com/tutorials/extending-the-html-by-creating-custom-tags--cms-28622

2. StackOverflow, Are custom elements valid HTML5?

https://stackoverflow.com/questions/9845011/are-custom-elements-valid-html5

3. Eric Bidelman, Custom Elements v1: Reusable Web Components

https://developers.google.com/web/fundamentals/getting-started/primers/customelements

作者:阮一峰

文章來源:

http://www.ruanyifeng.com/blog/2017/06/custom-elements.html?utm_source=tuicool&utm_medium=referral

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 優才學院 的精彩文章:

發現laravel簡單易學,賊歡喜,學習筆記如下
誰TM改了我代碼?
剛剛,最強暴雨被進京證嚇尿!
「阿里雲」躋身全球雲計算四大巨頭
Java基礎知識思維導圖

TAG:優才學院 |

您可能感興趣

HODL CPU挖礦簡單教程
PHP PDO 簡單教程
iPhone 自定義修改運營商名稱教程
趣味學編程│MATLAB表白教程
太空工程師FLOOR PANL SCRIPT使用教程
RabbitMQ系列教程 高級篇六 消費端自定義監聽
HTC Vive安裝教程
教你用PS製作一個燙金LOGO效果教程
GIF教程:用PS製作GIF動畫表情教程
XDAG GPU挖礦教程 Linux 篇
李笑來登頂 GitHub TOP 榜!幣圈大佬要教程序員如何自學編程
OpenVPN 的簡易使用教程
優動漫PAINT-繪製灌木的簡單教程
DDNS簡單教程
AI教程/MEB食物圖標
隨遇而安的DAPP開發實踐教程(二)使用HTML作為DAPP前端
C4D小清新LOGO製作教程
MR教程-Bridge
Virgil 親自教你定製 OW 聯名球鞋!教程在此!
PS教程 ps字體特效教程