如何从javascript获取内联块字段集的显示宽度

时间:2017-08-18 02:37:58

标签: javascript html css fieldset

如果你有一个带有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

必须有一个更简单的方法!帮助!

1 个答案:

答案 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>