- 由于您没有涉及 shadowDOM,因此您可以使用全局 CSS
- 您可以在 connectedCallback 中设置样式:
this.style.background='red'
- 您可以动态创建具有唯一标识符范围的 STYLE 标签
所有 3 个示例请参见 JSFiddle:https ://jsfiddle.net/CustomElementsExamples/Lf829wpy/
重要的是您的自定义内置元素的符号
正确的 : <button is="fancy-button></button>
不正确:( <fancy-button></fancy-button>
这是自治元素表示法)
.
火狐的陷阱:
不正确的符号在 Firefox 中有效,但在 Chrome 和 Opera 中无效
Firefox使用自治元素表示法处理扩展的内置元素,
但仅适用于定义之前在 DOM 中创建的元素:
这个
<fancy-button>Hello Fancy Red Button #1</fancy-button>
<script>
class FancyButton extends HTMLButtonElement {
constructor() {
super();
}
connectedCallback() {
this.style.background = 'red';
}
}
customElements.define('fancy-button', FancyButton, { extends: 'button' });
</script>
<fancy-button>Hello Fancy Red Button #2</fancy-button>
在 Firefox 中显示为:
标签之前的任意数量的自定义元素SCRIPT
被着色!
<SCRIPT>
移入Firefox时<HEAD>
不会为任何背景着色
在onload
事件之后执行脚本时,所有按钮都被着色
这是非标准行为!