【发布时间】:2012-03-29 08:05:04
【问题描述】:
查看这个 jsFiddle:http://jsfiddle.net/kb2vN/1/
CSS 中指定的 div 'mytext' 的高度为 100。div 中 3 个段落的总 offsetHeight 为 3 * 40 = 120。我追求的就是这个值(120)。为什么 document.getElementById('mytext').offsetHeight 没有返回这个值?父元素的 offsetHeight 是其子节点的 offsetHeights 之和,这是合乎逻辑的。
如果我没有将 CSS 中的“mytext”div 的高度设置为 100px,则(在我看来)正确的 offsetHeight 为 120。但在我的情况下,不在 CSS 中设置高度不是一个选项。
为什么div的offsetHeight对应css的高度,有没有替代的height属性可以反映div的实际高度,即使在css中指定了高度?
顺便说一句,我使用 Chrome 作为我的网络浏览器。
编辑 我意识到我还没有完全清楚这一切的目的。最后,我想检查 div 的实际内容(动态放入 div 中)是否不会导致 div 占用超过指定的最大高度(通过将 div 的 offsetHeight 与允许的最大高度进行比较) .由于我想在 JavaScript 中检查是否是这种情况,因此使用 min-height 或 max-height 之类的属性似乎没有意义。
【问题讨论】:
-
您可以使用 computedStyle 方法检查高度:见My Answer here
-
@Ibu 'height' 属性的计算样式也返回 100(px),参见原始 jsFiddle 中的 'report3' 值。更新:糟糕,更改丢失了,但您可以自己尝试。
标签: javascript css height