【发布时间】:2016-07-15 00:14:36
【问题描述】:
在 HTML 中创建自定义元素时,子标签是否继承父标签的 CSS 样式?
这是我的测试用例,来自 Chrome:
var h1bProto = document.registerElement ('h1-b',
{
prototype: Object.create (HTMLHeadingElement.prototype),
extends: "h1"
});
当我使用新的 h1bProto 附加一个孩子时,它会生成一个带有 is="h1-b" 的 H1 标签,示例如下:
var node = document.body.appendChild (new hibProto());
node.textContent = "Hello";
<h1 is="h1-b">Hello</h1>
你好
这给了我父母的 CSS 样式。但是,如果我通过先创建元素然后附加节点来添加节点,则代码如下所示:
var node = document.createElement ("h1-b");
node.textContent = "Hello";
document.body.appendChild (node);
<h1-b>Hello</h1-b>
你好
是我遗漏了什么,还是孩子没有继承父母的 CSS 样式?如果他们不这样做,那么使用 Shadow DOM 是不是最好的解决方法?
【问题讨论】:
标签: javascript html css custom-controls