shadow dom类似于audio标签的一些属性,是我们外部无法更改的,做到了样式隔离
特点:
- 样式隔离:内部样式更改,不会影响外部样式
- 访问性:如果mode=open,可以通过shadow.shadowRoot进行方法,如果mode=closed,则无法访问
// html<div><p>hello world</p><div id="shadow"></div></div>
// js<script>let shadowDom = shadow.attachShadow({mode: 'closed'});let pDom = document.createElement('p');let styleEle = document.createElement('style');styleEle.textContent = `p{color: green;}`pDom.innerHTML = 'hahaha';shadowDom.appendChild(pDom);shadowDom.appendChild(styleEle);console.log(shadow.shadowRoot) // null</script>
