使用自定义元素,我想为自定义元素内的元素设置样式,但是当我定义元素时,除了 shadow dom 之外的所有内容都消失了。
如何将内容从元素移动到影子 dom?我已经<div class="wrapper">
在阴影中有一个包装元素(),但试图使用
wrapper.innerHTML = this.innerHTML;
不起作用。
HTML
<site-card>
<section title>
...
</section>
<section body>
...
</section>
<section actions>
<button class="modern small">Action</button>
<button class="modern small">Action 2</button>
</section>
</site-card>
JS
"use strict";
class cardElement extends HTMLElement {
constructor() {
super();
var shadow = this.attachShadow({mode: 'open'});
var wrapper = document.createElement('div');
wrapper.setAttribute('class','wrapper');
wrapper.innerHTML = this.innerHTML;
var style = document.createElement('style');
style.textContent = ... /* CSS removed to shorten. */
shadow.appendChild(style);
shadow.appendChild(wrapper);
};
};
customElements.define('site-card', cardElement);