shadowDOM

博客介绍了ShadowDOM,以特殊HTML标签为例说明。提到可在F12的设置里查看ShadowDOM,还指出使用Bootstrap会清除Shadow - DOM元素,若想查看就不能使用Bootstrap。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是shadowDOM

我们可以拿一些特殊的html标签来举例子 比如说:<video></video> 或者 <input type="range"> 等 。。。
这两个是比较典型的例子 还有 <audio></audio>;

如何看到shadowDOM

f12 里面的 setting
在这里插入图片描述
运行效果在这里插入图片描述

注意 bootstrap会清除 shadow-dom 元素

所以不能使用bootstrap 不然就看不到了

shadow的详情链接

### 如何在 Shadow DOM 中使用 Iconfont 字体 #### 创建自定义元素并附加 Shadow DOM 为了使 `iconfont` 字体能够在 Shadow DOM 内正常工作,首先需要创建一个带有 Shadow DOM 的 Web 组件。通过 JavaScript 定义一个新的类继承自 HTMLElement 并注册该组件。 ```javascript class MyElement extends HTMLElement { constructor() { super(); const shadowRoot = this.attachShadow({ mode: 'open' }); // 将外部样式表引入到 Shadow DOM 中 const linkElem = document.createElement('link'); linkElem.setAttribute('rel', 'stylesheet'); link Elem.href = '//at.alicdn.com/t/font_123456.css'; // 替换成实际的 iconfont URL shadowRoot.appendChild(linkElem); // 构建内部 HTML 结构 const wrapper = document.createElement('span'); wrapper.className = "my-icon"; wrapper.innerHTML = '<i class="iconfont icon-example"></i>'; shadowRoot.appendChild(wrapper); } } customElements.define('my-element', MyElement); ``` 上述代码片段展示了如何构建一个简单的 Web Component,在其内部加载来自阿里云平台上的 `iconfont` 资源,并将其应用至指定图标的显示上[^3]。 #### 解决潜在兼容性和样式隔离问题 由于 Shadow DOM 提供了良好的封装机制,默认情况下会阻止父级页面中的全局样式影响子树内的节点;因此,对于某些老旧版本浏览器(如 IE),可能无法直接识别 `<style>` 或者 `<link rel="stylesheet">` 标签所指向的内容。针对这种情况,可以通过动态插入内联样式的手段来规避这一限制: ```css /* 添加到 Shadow Root */ <style> .iconfont:before { speak: none; font-family: "iconfont" !important; font-size: 16px; font-style: normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } </style> ``` 另外需要注意的是,尽管 `iconfont` 支持较好的跨浏览器表现力,但对于多色图标的支持仍然有限——这取决于具体实现方法以及目标环境特性。如果项目中有这方面的需求,则推荐考虑采用其他形式的技术方案,比如基于 SVG Sprites 实现[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值