我正在努力从我编写的一些代码中删除jQuery,并且我有一部分代码,我在其中计算了一些span
元素的内部和外部宽度。似乎.getBoundingClientRect()
可以很好地获得元素的外部宽度,但是我有点卡在内部宽度上。 (即元素的宽度没有填充和边框。)
我正在使用d3创建我的跨度,我需要计算它们的内部宽度,以便我可以有效地设置其他一些元素的宽度,以使它们排成一行。有没有一种获得div内部宽度的好方法,而无需手动检查和减去可能影响它的各种.css属性?
答案 0 :(得分:3)
不确定这是多么稳定,但似乎有效的方法是使用window.getComputedStyle(element).width
。
这将计算出的样式设为“95px”,其中95是内部宽度(以像素为单位)。我正在使用parseInt(window.getComputedStyle(element).width)
将元素的内部宽度作为数字。
答案 1 :(得分:0)
您可以尝试.offsetWidth
。这是一个fiddle。
答案 2 :(得分:0)
来自jQuery:
Math.max(element.scrollWidth, element.offsetWidth, element.clientWidth)