【发布时间】:2018-02-12 01:43:24
【问题描述】:
使用自定义元素,我想为自定义元素内的元素设置样式,但是当我定义元素时,除了 shadow dom 之外的所有内容都消失了。
如何将内容从元素移动到 shadow 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);
【问题讨论】:
-
欢迎来到 SO。请包括所有相关的代码行及其输出,并解释预期结果与您得到的结果。
-
@marekful 谢谢!我已经添加了 HTML 和 JS。
标签: javascript html web-component native-web-component