【发布时间】:2016-08-15 01:13:24
【问题描述】:
在尝试创建一个 Angular 指令以使其内容的大小适应容器的大小时,我偶然发现了以下问题:
最小的 HTML sn-p:
<my-tag id="testWidth">
<div>some text</div>
</my-tag>
读取my-tag 的宽度时,我在Chrome 中得到0 的结果,而Firefox 返回正确的结果。在 Chrome 中,如果我将 my-tag 替换为 div,结果也是正确的。
这是我用来获取宽度的表达式:
document.getElementById('testWidth').offsetWidth
据我所知,my-tag 应该是valid custom element name。还有什么我做错了,或者这只是 Chrome 中的一个错误?
Chrome 版本:49.0.2623.112 m
jsfiddle 用于快速测试
我正在尝试了解 Chrome 的行为是否正确或者这是一个错误。
HTMLElement.offsetWidth 只读属性返回布局 元素的宽度。
据我所知,这并不是说这仅适用于具有块显示的元素。而且我也支持我的理解,即 Firefox 会返回我所期望的。
span 标签也可以观察到相同的行为差异,请参阅this fiddle。
【问题讨论】:
-
我在 Chrome 上遇到了同样的问题。奇怪的是,getBoundingClientRect() 的宽度是正确的。
标签: javascript html dom