Javascript 获取不带jQuery的innerWidth()等价项

Javascript 获取不带jQuery的innerWidth()等价项,javascript,Javascript,我目前正致力于从我编写的一些代码中删除jQuery,我得到了一部分代码,其中我计算了一些span元素的内部和外部宽度。似乎.getBoundingClientRect()可以很好地获取元素的外部宽度,但我在获取内部宽度方面有点困难。(即无填充和边框的元素的宽度。) 我使用d3来创建跨度,我需要计算它们的内部宽度,这样我就可以有效地设置一些其他元素的宽度,以便让它们对齐。有没有一种不用手动检查和减去可能影响div的各种.css属性就可以获得div的内部宽度的好方法?您可以尝试.offsetWidt

我目前正致力于从我编写的一些代码中删除jQuery,我得到了一部分代码,其中我计算了一些
span
元素的内部和外部宽度。似乎
.getBoundingClientRect()
可以很好地获取元素的外部宽度,但我在获取内部宽度方面有点困难。(即无填充和边框的元素的宽度。)


我使用d3来创建跨度,我需要计算它们的内部宽度,这样我就可以有效地设置一些其他元素的宽度,以便让它们对齐。有没有一种不用手动检查和减去可能影响div的各种.css属性就可以获得div的内部宽度的好方法?

您可以尝试
.offsetWidth
。这里有一个。

不确定这有多稳定,但似乎有效的方法是使用
window.getComputedStyle(element).width

这使得计算的样式为“95px”,其中95是内部宽度(以像素为单位)。我正在使用
parseInt(window.getComputedStyle(element.width)
以数字形式获取元素的内部宽度。

取自jQuery:

Math.max(element.scrollWidth, element.offsetWidth, element.clientWidth)

这似乎给出了与
.getBoundingClientWidth()
(即包括填充和边框)相同的结果。请注意,这返回的值还取决于框大小css属性。