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