Jquery 如何获取实体元素的高度

Jquery 如何获取实体元素的高度,jquery,css,Jquery,Css,这里所有的总高度为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</d

这里所有
的总高度为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>
$j(函数(){
警惕($j(“身体”)。高度();
})
html,正文{
身高:100%;
}
标题
内容
页脚
设置

而不是高度:100%


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

我相信返回的BODY height是可见高度。如果需要总页面高度,可以将div标记包装在包含div的文件中,并获得该文件的高度。

只需使用

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

$(window).height()

而不是
$('body')。height()

$(document).height()似乎起到了作用,它给出了总高度,包括只有通过滚动才能看到的区域。

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

$window[0].document.body.clientHeight 
并发现以下jQuery不会始终产生相同的值,但最终会在我们的页面加载场景中产生相同的值,该场景对我们有效,并保持了跨浏览器支持:

$(document).height()

OderWat先生,这也是不错的一个,但我比实际尺寸多了8像素(通过使用$(document).height()),这8像素“更多”是正确的。它们是文档的页边距。您可以使用:body{height:100%;margin:0},也可以使用$(document).height()-$(“body”).offset().top$(“body”).offset().top对body上的相等页边距有效,但如果专门设置了底部页边距,它将不起作用。另外,我尝试了$(“body”).css(“marginbottom”),但它返回的是单位,并且可能并不总是以像素为单位。有没有其他方法来找出“更多”?虽然这可能适用于本案例,但这并不是问题的答案。这个body{min height:100%;}是一个非常好的建议。CSS设置应该是针对html而不是针对head吗?@Robert Koritnik:谢谢。不知道我怎么这么长时间都没有注意到这个拼写错误。谢谢@Rafael,即使这么多年了,你的答案仍然很受欢迎。你需要缩进4个空格来创建一个代码块,每个代码块都少了一个。
$(document).height()