如何在不设置CSS的width属性的情况下获得元素的宽度?如果我设置宽度,它可以工作,但是如果我不设置宽度,则即使我在调试器检查后发现宽度不是0,它也只是0。
let width = this.htmlElement.clientWidth;
的HTML
<label [model]="foobar">0</label>
最佳答案
使用offsetWidth
代替
let width = this.htmlElement.offsetWidth;
clientWidth
的docs中的第一行是对于没有CSS或元素的
Element.clientWidth
属性为零内联布局框,否则为元素中的内部宽度
像素
另一方面,offsetWidth是一个只读属性,它返回元素的布局宽度,而不管元素是否使用给定宽度设置样式。
var el = document.getElementById('foobar');
console.log('clientWidth : '+ el.clientWidth );
console.log('offsetWidth : '+ el.offsetWidth );
<label id="foobar">This has width ..................</label>
关于javascript - 除非我使用CSS设置,否则element的clientWidth为0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45260088/