参见此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高度,并且即使CSS中指定了高度,也存在一个替代的height属性来反映实际的div高度?
顺便说一句,我使用Chrome作为我的网络浏览器。
编辑
我意识到我对这一切的目的还不是很清楚。最后,我想检查div的实际内容(动态放置在div中)是否不会导致div超过指定的最大高度(通过将div的offsetHeight与允许的最大高度进行比较) 。由于我想检查JavaScript是否是这种情况,因此使用min-height或max-height之类的属性似乎没有任何意义。
最佳答案
如果添加边框和一些其他注释,您将看到为什么这是正确的,并且是偏移高度:
http://jsfiddle.net/kb2vN/4/
您会注意到元素#mytext
仅占用100 px。内容只是溢出它。如果将内容放在元素之后,您将看到它仅在100 px之后开始,并且框上的溢出就在它的顶部。
我认为您真正想要的是min-height
:
http://jsfiddle.net/kb2vN/6/
关于javascript - 如何确定HTML DOM元素的实际高度与CSS中指定的高度无关?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9913329/