自定义html标签教程,HTML自定义标签

自定义html标签教程,HTML自定义标签背景 HTML 的标签大家不陌生 都是标准定义好的 我们只管用 但是有没有想过 我们可以定义自己的标签 封装成自己的组件 DEMO 下面的 demo 用于展示浏览器版本的支持情况 查看其 DOM 发现标签是 browser support 这就是自定义标签 实现 HTMLElementC browser supportbrows support display block

背景

HTML的标签大家不陌生,都是标准定义好的,我们只管用。但是有没有想过,我们可以定义自己的标签,封装成自己的组件。

DEMO

下面的demo,用于展示浏览器版本的支持情况。查看其DOM,发现标签是browser-support,这就是自定义标签。

Fg4r5Zz5hZWZTwhXgUcIzYkFARTW

实现

HTMLElement

Custom Elements – browser-support

browser-support {

display: block;

}

class browserSupport extends HTMLElement {

static get observedAttributes () {

return [‘chrome-version’, ‘opera-version’, ‘firefox-version’, ‘safari-version’, ‘ie-version’]

}

constructor () {

super();

this.render();

}

render () {

var shadowRoot = this.shadowRoot || this.attachShadow({mode: ‘open’});

var ul = document.createElement(‘ul’);

ul.style.listStyle = ‘none’;

ul.style.display = ‘flex’;

ul.style.width = ‘100%’;

const browserList = [

{

text: ‘Chrome’,

img: ‘../../assets/img/chrome_189x189.png’,

version: this.chromeVersion

},

{

text: ‘Opera’,

img: ‘../../assets/img/opera.png’,

version: this.operaVersion

},

{

text: ‘Firefox’,

img: ‘../../assets/img/ff_189x189.png’,

version: this.firefoxVersion

},

{

text: ‘Safari’,

img: ‘../../assets/img/safari_189x189.png’,

version: this.safariVersion

},

{

text: ‘IE’,

img: ‘../../assets/img/IE8_189x189.png’,

version: this.ieVersion

}

]

var liWidth = (100 / browserList.length) + ‘%’;

for (let i = 0; i < browserList.length; i++) {

var li = document.createElement(‘li’);

li.style.textAlign = ‘center’;

li.style.width = liWidth

let logoImg = document.createElement(‘img’);

logoImg.src = browserList[i].img;

logoImg.style.width = ’60px’;

logoImg.style.height = ’60px’;

li.appendChild(logoImg);

let p1 = document.createElement(‘p’);

p1.style.color = ‘#3a3a3a’;

p1.style.fontSize = 14;

p1.innerText = browserList[i].text;

li.appendChild(p1);

let p2 = document.createElement(‘p’);

p2.style.color = ‘#4a4a4a’;

p2.style.fontSize = 12;

p2.innerText = browserList[i].version;

li.appendChild(p2);

ul.appendChild(li)

}

shadowRoot.innerHTML = “”

shadowRoot.appendChild(ul);

}

attributeChangedCallback (attr, oldValue, newValue) {

this.render()

console.log(‘attributeChangedCallback trigger’)

}

disconnectedCallback () {

console.log(‘disconnectedCallback’)

}

get chromeVersion () {

return this.getAttribute(‘chrome-version’) || ”

}

get operaVersion () {

return this.getAttribute(‘opera-version’) || ”

}

get firefoxVersion () {

return this.getAttribute(‘firefox-version’) || ”

}

get safariVersion () {

return this.getAttribute(‘safari-version’) || ”

}

get ieVersion () {

return this.getAttribute(‘ie-version’) || ”

}

}

customElements.define(‘browser-support’, browserSupport);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198544.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午2:58
下一篇 2026年3月26日 下午2:58


相关推荐

  • 如何使用eclipse软件创建一个Java项目?[通俗易懂]

    如何使用eclipse软件创建一个Java项目?[通俗易懂]同学们在参加Java的时候老师肯定会教给你们如何去创建一个项目,这里怕有些同学没记住,所以单独为大家分享一篇如何使用eclipse软件创建一个Java项目教程,感觉有用的话收藏转发一下~eclipse创建Java项目教程1.首先我们需要打开eclipse软件,之后找到左上角的file选项卡,点击一下依次选择new-Javaproject选项,如图所示。2.随后会打开一个新建页面,在里面我们找到箭头所示的projectname处,在里面填写我们的Java项目名称,直接选择finish即可完成创建。

    2022年7月9日
    25
  • linux未找到 ftp命令,Linux服务器ftp命令找不到「建议收藏」

    linux未找到 ftp命令,Linux服务器ftp命令找不到「建议收藏」ftpcommondnotfind先用命令rpm-qvsftpd检查是否安装了ftp服务器若显示vsftpd-2.2.2-11.el6_4.1.x86_64这样的信息,说明FTP服务器已安装,那为什么FTP命令不能用呢,那是FTP客户端没安装的缘故。下载ftp-0.17-51.1.el6.x86_64.rpm,下载地址有:http://rpm.pbone.net/index.php3/s…

    2025年11月28日
    10
  • 编写java程序打印菱形_java菱形代码

    编写java程序打印菱形_java菱形代码importjava.util.Scanner;publicclass打印菱形{publicstaticvoidmain(String[]args){/**菱形**************************/ScannerinputScanner=newScanner(System.in);System.out.prin…importjava.util.Scanner;publicc…

    2026年4月18日
    6
  • Airflow使用入门指南

    Airflow使用入门指南Airflow 能做什么 Airflow 是一个工作流分配管理系统 通过有向非循环图的方式管理任务流程 设置任务依赖关系和时间调度 Airflow 独立于我们要运行的任务 只需要把任务的名字和运行方式提供给 Airflow 作为一个 task 就可以 安装和使用最简单安装在 Linux 终端运行如下命令 需要已安装好 python2 x 和 pip pipinstallai air

    2026年3月20日
    2
  • 五大常用算法——贪心算法详解及经典例子

    五大常用算法——贪心算法详解及经典例子nbsp nbsp nbsp nbsp nbsp 贪心算法 又称贪婪算法 是指 在对问题求解时 总是做出在当前看来是最好的选择 也就是说 不从整体最优上加以考虑 他所做出的仅是在某种意义上的局部最优解 贪心算法不是对所有问题都能得到整体最优解 但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解 基本思路 建立数学模型来描述问题 把求解的问题分成若干个子问题 对每一子问题求解 得到子问题的局部最优解

    2026年3月20日
    1
  • mapminmax 用法[通俗易懂]

    mapminmax 用法[通俗易懂]mapminmax是MATLAB实现归一化的工具包,默认:(1)将矩阵的每行分别进行归一化;(2)每行的最大值最小值作为每行归一化的xmin和xmax;(3)将数据归一化到[-1,1].若要将数据归一化到0到1之间,即y∈[0,1],使用b=mapminmax(a,0,1);若给与确定的最大值和最小值作为每行的xmin和xmax,使用:b= mapminmax(a,0,1);PS.xmin…

    2022年6月30日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号