如何获得身体元素的高度

时间:2009-04-30 11:03:30

标签: jquery css

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

这个问题有解决方案吗?

$j(function() {
    alert($j("body").height());
})

html, body {
    height:100%;
}

<div style="height:200px">header</div>
<div style="height:500px">content</div>
<div style="height:200px">footer</div>

5 个答案:

答案 0 :(得分:38)

只需使用

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

和/或

$(window).height()

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

答案 1 :(得分:28)

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

而不是height: 100%

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

答案 2 :(得分:2)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

$window[0].document.body.clientHeight 

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

$(document).height()