【发布时间】:2019-04-09 15:17:45
【问题描述】:
我构建了一个带有onclick eventListener 的自定义元素。宽度由 CSS 设置为 200px。
当我将自定义元素附加到更宽的表格单元格时,eventListener 甚至会捕获自定义元素外部(但在表格单元格内)的点击。
当使用 Firefox Inspector 浏览元素时,自定义元素似乎填充了整个表格单元格,尽管它的宽度已设置。为什么会这样?
class Test extends HTMLElement {
constructor() {
super();
var shadow = this.attachShadow( { mode: 'open' } );
var f = document.createElement('font');
f.innerHTML = 'text';
var div = document.createElement('div');
div.style.border = '1px solid black';
div.style.width = '200px';
this.addEventListener('click', function() {
console.log('clicked');
});
div.appendChild(f);
shadow.appendChild(div);
}
}
customElements.define('my-test', Test);
<table border=1 style='border-collapse: collapse;'>
<tr>
<td style='width: 800px;' align='center'>
<my-test></my-test>
</td>
</tr>
</table>
【问题讨论】:
标签: javascript html shadow-dom