创建并使用自定义标签

Web Components 标准非常重要的一个特性是,它使开发者能够将HTML页面的功能封装为 custom elements(自定义标签),本篇介绍使用 CustomElementRegistry 来管理我们的自定义标签

1. 创建自定义标签

  <script>
class PopUpInfo extends HTMLElement {
constructor () {
super();
// 在此定义自定义标签 我顶一个icon和text并列的
// Create a shadow root
let shadow = this.attachShadow({mode: 'open'});
  // 创建我们需要的标签
let wrapper = document.createElement(&#39;div&#39;);
let iconBox = document.createElement(&#39;div&#39;);
let textBox = document.createElement(&#39;div&#39;); // 为标签添加样式
wrapper.setAttribute(&#39;class&#39;,&#39;wapper&#39;);
iconBox.setAttribute(&#39;class&#39;,&#39;icon&#39;);
textBox.setAttribute(&#39;class&#39;,&#39;text&#39;); let text = this.getAttribute(&#39;text&#39;); // 获取标签里面传递的值
textBox.textContent = text; let imgUrl;
if(this.hasAttribute(&#39;img&#39;)) {
imgUrl = this.getAttribute(&#39;img&#39;);
} else {
imgUrl = &#39;default.png&#39;; // 设置一个默认图片
}
var img = document.createElement(&#39;img&#39;);
img.src = imgUrl;
iconBox.appendChild(img); // 书写样式
var style = document.createElement(&#39;style&#39;);
let lStyleStr = &#39;.wrapper { display: flex; justify-content: center; align-items: center; width: 100%; height: 50px;}&#39;
lStyleStr += &#39;.icon {margin-right: 10px; width: 50px; height: 50px;}&#39;
lStyleStr += &#39;.icon img { width: 100%; height: 100%;}&#39;
lStyleStr += &#39;.text { flex: 1; font-size: 14px; color: #333; line-height: 50px;}&#39;
style.textContent = lStyleStr; // 将样式和dom元素挂载到页面
shadow.appendChild(style);
shadow.appendChild(wrapper);
wrapper.appendChild(icon);
wrapper.appendChild(info); }

}
</script>

2. 注册自定义标签

  <script>
customElements.define('popup-info', PopUpInfo);
</script>

3. 使用自定义标签

<body>
<popup-info img="you_picture.jpg" text="你的文字"></popup-info>
</body>

在html中创建自定义标签的更多相关文章

  1. 使用原生js创建自定义标签

    使用原生js创建自定义标签 效果图 代码 <!DOCTYPE html> <html lang="en"> <head> <meta ch ...

  2. 在jsp页面中使用自定义标签

    在某些场景中,自定义标签可封装大量代码,使页面变得更简洁,标签也可以很方便地在不同页面中实现通用而不必去粘贴大量的js代码.现在把最近做的一个自定义标签在这里总结一下.首先总结一下关于自定义标签的一些 ...

  3. 在Oracle电子商务套件版本12.2中创建自定义应用程序(文档ID 1577707.1)

    在本文档中 本笔记介绍了在Oracle电子商务套件版本12.2中创建自定义应用程序所需的基本步骤.如果您要创建新表单,报告等,则需要自定义应用程序.它们允许您将自定义编写的文件与Oracle电子商务套 ...

  4. js中创建html标签、加入select下默认的option的value和text、删除select元素节点下全部的OPTION节点

    <pre name="code" class="java"> jsp 中的下拉框标签: <s:select name="sjx&qu ...

  5. javaweb回顾第八篇如何创建自定义标签

    前言:在javaweb开发中自定义标签的用处还是挺多的.今天和大家一起看自定义标签是如何实现的. 1:什么是标签 标签是一种XML元素,通过标签可以使JSP页面变得简介易用,而且标签具有很好的复用性. ...

  6. 在 ASP.NET MVC 中创建自定义 HtmlHelper

    在ASP.NET MVC应用程序的开发中,我们常碰到类似Html.Label或Html.TextBox这样的代码,它将在网页上产生一个label或input标记.这些HtmlHelper的扩展方法有些 ...

  7. spring中的自定义标签

    为了给系统提供可配置化支持,一般会用原生态的方式去解析定义好的XML文件,然后转化为配置对象.这种方式对于简单.单一的配置文件,或者是XML配置格式固定的配置文件,比较容易处理.但是对于一些配置非常复 ...

  8. Spring源码学习-容器BeanFactory(四) BeanDefinition的创建-自定义标签的解析.md

    写在前面 上文Spring源码学习-容器BeanFactory(三) BeanDefinition的创建-解析Spring的默认标签对Spring默认标签的解析做了详解,在xml元素的解析中,Spri ...

  9. 在django中使用自定义标签实现分页功能

    效果演示: github地址:https://github.com/mncu/django_projects/tree/master/django_projects/pagination_test 本 ...

随机推荐

  1. win10常用快捷键总结

    前言: 很多快捷键在不同版本系统基本相同的,但是今天推送的这篇文章更多的介绍 win10快捷键,微软也是大力推广 旗舰系统 win10 ,所以大家提前升级,提前学习还是有必要的.毕竟2020年微软会放 ...

  2. Mybatis的三种批量操作数据的方法

    方法1: 使用for循环在java代码中insert (不推荐) 方法2: 使用 在Mapper.xml当中使用 foreach循环的方式进行insert PersonDao.java文件 publi ...

  3. 夯实Java基础系列目录

    自进入大学以来,学习的编程语言从最初的C语言.C++,到后来的Java,. NET.而在学习编程语言的同时也逐渐决定了以后自己要学习的是哪一门语言(Java).到现在为止,学习Java语言也有很长一段 ...

  4. 认识gets&read(buffer over flow is bof)

    gets不会检查输入的长度,从而有数据覆盖的风险,

  5. Linux Kernel 5.5 最终删除 SYSCTL 系统调用

    导读 Linux Kernel 5.5 最终消除了支持sysctl系统调用的代码,该代码已被弃用了大约十年,目前对任何体系结构的现代系统都没有影响. 长期以来,Linux sysctl系统调用都不建议 ...

  6. Spring Boot项目中各配置文件的对比

    application.properties是Spring Boot的全局配置文件,放在src/main/resources目录下或者类路径的/config下,作用是对一些默认配置的配置值进行修改. ...

  7. JDBC 存储过程

    存储过程 DROP PROCEDURE IF EXISTS `addUser`; CREATE PROCEDURE `addUser` (),in birthday date,in money flo ...

  8. Java连载78-深入自动拆装箱、Date类和SimpleDateFormat格式化

    一.深入自动拆装箱 1.直接举例: public class D78_AutomaticUnpackingAndPacking{ public static void main(String[] ar ...

  9. python 基础之列表的操作和列表的相关函数

    一.列表的相关操作 1.列表的拼接 list1 = [1,2]list2 = [3,4]listvar = list1 + list2print(listvar) 2.列表的重复 lst = [1,2 ...

  10. 【JAVA蓝桥杯】基础练习2 十六进制转十进制

    资源限制 时间限制:1.0s   内存限制:512.0MB 问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. 注:十六进制数中的10~15分别用大写的英文字母A ...