如何获得身体元素的高度

这里所有

的总高度是900像素,但jQuery函数将身体的高度返回为577像素。 (如果我删除了身体CSS,它正在工作)。

这个问题有解决方案吗?

 $j(function() { alert($j("body").height()); }) html, body { height:100%; } 
header
content
footer

 html { height: 100%; } body { min-height: 100%; } 

而不是height: 100%

jQuery返回的结果是正确的,因为您已将主体的高度设置为100%,这可能是视口的高度。 这三个DIV导致溢出,因为在BODY元素中没有足够的空间。 要查看我的意思,请将边框设置为BODY标记并检查边框的结束位置。

简单地使用

 $(document).height() // - $('body').offset().top 

和/或

 $(window).height() 

而不是$('body').height();

$(document).height()似乎可以做到这一点并给出总高度,包括只能通过滚动看到的区域。

我相信返回的身高是可见的高度。 如果您需要总页面高度,可以将div标签包含在包含div中并获得其高度。

我们试图避免使用IE特定的

 $window[0].document.body.clientHeight 

并发现以下jQuery不会始终如一地产生相同的值,但最终会在我们的页面加载场景中的某些时刻起作用,这对我们有用并保持跨浏览器支持:

 $(document).height()