如何使用 vanilla JavaScript 查找 div 的宽度?

IT技术 javascript html
2021-01-15 14:37:05

如何<div>使用像 jQuery这样的库的情况下以跨浏览器兼容的方式找到 a 的当前宽度

6个回答
document.getElementById("mydiv").offsetWidth
offsetWidth包括边框宽度,clientWidth包括
2021-03-15 14:37:05
当 myDiv 没有 CSS 规则但在标签中定义了“宽度”和“高度”时,offsetWidth 返回父宽度。没问题,我只是添加了 CSS 规则,效果很好。
2021-03-15 14:37:05
@nim 如果您的 div 有display: none或不是文档的一部分,它将始终具有零偏移高度。
2021-03-31 14:37:05
那,或者cientWidth,虽然我不知道真正的区别。
2021-04-10 14:37:05
这个答案有之间的差异的详细解释视觉offsetWidthclientWidth
2021-04-12 14:37:05

您可以使用clientWidthoffsetWidth Mozilla 开发者网络参考

它会是这样的:

document.getElementById("yourDiv").clientWidth; // returns number, like 728

或边框宽度:

document.getElementById("yourDiv").offsetWidth; // 728 + borders width

所有答案都是正确的,但我仍然想提供一些其他可行的替代方案。

如果您正在寻找指定的宽度(忽略填充、边距等),您可以使用。

getComputedStyle(element).width; //returns value in px like "727.7px"

getComputedStyle 允许您访问该元素的所有样式。例如:padding、paddingLeft、margin、border-top-left-radius等。

您还可以使用 ClassName 搜索 DOM。例如:

document.getElementsByClassName("myDiv")

这将返回一个数组。如果您对某一特定属性感兴趣。例如:

var divWidth = document.getElementsByClassName("myDiv")[0].clientWidth;

divWidth 现在将等于 div 数组中第一个元素的宽度。

实际上,您不必使用document.getElementById("mydiv") .
您可以简单地使用 div 的 id,例如:

var w = mydiv.clientWidth;

var w = mydiv.offsetWidth;
等。