自定义标签是什么意思

自定义标签是什么意思

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("div");
  let iconBox = document.createElement("div");
  let textBox = document.createElement("div");
  // 为标签添加样式
  wrapper.setAttribute("class","wapper");
  iconBox.setAttribute("class","icon");
  textBox.setAttribute("class","text");
  let text = this.getAttribute("text"); // 获取标签里面传递的值
  textBox.textContent = text;
  let imgUrl;
  if(this.hasAttribute("img")) {
    imgUrl = this.getAttribute("img");
  } else {
    imgUrl = "default.webp"; // 设置一个默认图片
  }
  var img = document.createElement("img");
  img.src = imgUrl;
  iconBox.appendChild(img);
  // 书写样式
  var style = document.createElement("style");
  let lStyleStr = ".wrapper { display: flex; justify-content: center;
   align-items: center; width: 100 height: 50px;}"
  lStyleStr += ".icon {margin-right: 10px; width: 50px; height: 50px;}"
  lStyleStr += ".icon img { width: 100 height: 100}"
  lStyleStr += ".text { flex: 1; font-size: 14px; color: #333; line-height: 50px;}"
  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.webp" text="你的文字"></popup-info>
</body>

更多HTML相关技术文章,请访问HTML答疑栏目进行学习!

以上就是自定义标签是什么意思的详细内容,更多请关注易知道|edz.cc其它相关文章!

推荐阅读