如果你有一个带有display:inline-block的字段集,它的宽度取决于其包含的元素。你可以看到它,但假设:
<fieldset id='fs' style='display: inline-block'>
<input type=number>
</fieldset>
<script>
var fs=document.getElementById("fs");
console.log("fs.width:",fs.width);
</script>
唯一的输出是:
fs.width: undefined
在尝试了很多事情后,我终于能够得到这样的结果:
<script>
var fs=document.getElementById("fs");
var fsrects=fs.getClientRects();
var fswidth=fsrects[0].right-fsrects[0].left;
console.log("fswidth:",fswidth);
</script>
然后输出
fswidth: 98.6640625
必须有一个更简单的方法!帮助!
答案 0 :(得分:1)
您可能正在寻找offsetWidth。
HTMLElement.offsetWidth只读属性返回元素的布局宽度。通常,元素的offsetWidth是一个度量,它包括元素边框,元素水平填充,元素垂直滚动条(如果存在,如果呈现)和元素CSS宽度。
var fs=document.getElementById("fs");
console.log("fs.width:",fs.offsetWidth);
<fieldset id='fs' style='display: inline-block'>
<input type=number>
</fieldset>