2014-02-18 47 views
0

我试图设置我的内容div height等于window.height - (footer.height + header.height)。我也做了内容overflow-y to scroll。 这工作完美,除非div内的内容超过了高度限制div伸展更多,然后它的高度,而不是滚动模式,有人可以告诉我我在这里错过了什么?提前致谢!jquery div等于窗口高度延伸内容

$("#p_body").height($(window).height() - ($("#p_header").height() + $("#p_footer").height())); 
$("#content_body").height($("#p_body").height() - ($("#content_header").height() + 10)); 

页面结构:

<div id="p_header"></div> 
<div id="p_body"> 
<div id="content_header"></div> 
<div id="content_body" style="overflow-y:scroll;"></div> 
</div> 
<div id="p_footer"></div> 
+1

我没看到你的问题[this](http://jsfiddle.net/7T8vL/)是如何工作的? –

+0

它确实有效,除非我放在身体中的内容长于窗口高度,在这种情况下,content_body伸展,我希望它始终保持相同的高度,并滚动到它内部的内容中。 – durian

+1

我同意凯尔。如果您希望可滚动区域较小,那么您必须在计算中包括该值,或者将可滚动区域设为较高的高度值。您给我们的代码按预期工作,尤其是当我们添加内容时:http://jsfiddle.net/zyV3W/1/。 – Lowkase

回答

0

我知道了,问题是我必须设置任何高度固定值,我的内容股利,因为这样的:

<div id="p_header"></div> 
<div id="p_body"> 
<div id="content_header"></div> 
<div id="content_body" style="overflow-y:scroll; **height:10px;**"></div> 
</div> 
<div id="p_footer"></div> 

否则代码工作正常,直到div内的内容执行window.height(),所以它没有看到内容divs高度为固定高度。