在html中创建自定义标签
2024-09-05 07:29:44
创建并使用自定义标签
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.png'; // 设置一个默认图片
}
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.jpg" text="你的文字"></popup-info>
</body>
最新文章
- Which language is best, C, C++, Python or Java?什么编程语言最好
- BZOJ4539: [Hnoi2016]树
- easy ui插件
- vim 查看文件二进制格式
- Python全栈之路8--迭代器(iter)和生成器(yield)
- 前端面试题和setTimeout异步
- HDU 4548 美素数
- InstallShield Custom Dialog
- VOA学习-South Sudan Must Allow Aid
- HTML5移动开发中的input输入框类型
- 批处理WMIC查看补丁情况
- android 删除的警告对话框
- 高性能C++网络库libtnet实现:Connection
- 直接插入排序---java实现
- CSS简介及基本知识
- idea通过mapper快速定位到xml文件
- 使用git将项目上传到github
- RAMPS1.4 3d打印控制板接线与测试
- iOS 申请distribution证书, 公钥,私钥
- Redis的Sorted Set有序集合命令