【发布时间】:2014-08-08 06:23:36
【问题描述】:
有谁知道在没有内联高度声明的情况下是否可以获得元素的高度(减去垂直填充、边框和边距)?我需要支持IE8及以上。
el.style.height 不起作用,因为样式是在外部样式表中设置的。
el.offsetHeight 或 el.clientHeight 不起作用,因为它们不仅仅包含元素的高度。而且我不能只减去元素的填充等,因为这些值也是在 CSS 样式表中设置的,而不是内联的(所以 el.style.paddingTop 不起作用)。
同样不能window.getComputedStyle(el),因为IE8不支持这个。
jQuery 有 height() 方法,它提供了这个,但是我在这个项目中没有使用 jQuery,另外我只是想知道如何在纯 JavaScript 中做到这一点。
有人有什么想法吗?非常感谢。
【问题讨论】:
-
是的,但正如我提到的,jQuery 以某种方式通过 .height() 实现了这一点,所以这一定是可能的。
-
它可能使用
getComputedStyle,对于旧版IE,可能使用currentStyle。 -
是的,jQuery 的
height()和innerHeight()在内部都使用css(),而css()在内部使用getComputedStyle和currentStyle。 -
get element inner height 的可能重复项
-
@adeneo 我不知道 currentStyle。如果我发现一些有用的东西,我会尝试 2 的一些组合并回发。谢谢!
标签: javascript css