不使用jQuery获取innerWidth()等效项

时间:2013-12-23 17:32:26

标签: javascript

我正在努力从我编写的一些代码中删除jQuery,并且我有一部分代码,我在其中计算了一些span元素的内部和外部宽度。似乎.getBoundingClientRect()可以很好地获得元素的外部宽度,但是我有点卡在内部宽度上。 (即元素的宽度没有填充和边框。)

我正在使用d3创建我的跨度,我需要计算它们的内部宽度,以便我可以有效地设置其他一些元素的宽度,以使它们排成一行。有没有一种获得div内部宽度的好方法,而无需手动检查和减去可能影响它的各种.css属性?

3 个答案:

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