如何获得身体元素的高度

Shi*_*idi 17 css jquery

这里所有的总高度<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>
Run Code Online (Sandbox Code Playgroud)

Ode*_*Wat 38

简单地使用

$(document).height() // - $('body').offset().top
Run Code Online (Sandbox Code Playgroud)

和/或

$(window).height()
Run Code Online (Sandbox Code Playgroud)

代替 $('body').height();

  • 那8个像素"更多"是正确的.它们是文档的边缘.您可以使用:body {height:100%; margin:0}或者使用$(document).height() - $("body").offset()来减去偏移量. (3认同)
  • $("body").offset().top适用于body上的相等边距,但如果底部边距是专门设置的,则不起作用.此外,我尝试了$("body").css("margin-bottom")但是返回单位,它可能并不总是以像素为单位.有没有其他方法可以找到"更多"? (3认同)

Raf*_*ael 28

html { height: 100%; }
body { min-height: 100%; }
Run Code Online (Sandbox Code Playgroud)

而不是height: 100%.

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