+-------------+ +---------------------------------+
| | | |
| 1 | | |
| left-nav | | |
| | | |
+-------------+ | 3 |
| | | |
| | | |
| 2 | | very long contents here |
| | | which causes to scroll |
| other | | vertical bar. Setting |
| remaining | | this content to 100% height? |
+-------------+ +---------------------------------+
什么是身高:100%;其实?它是应用于页面窗口还是滚动结束?我有以下html ...
<div id="wrapper">
<div id="left-nav">
<!--contents of 1-->
</div>
<div id="yourad">
<!--contents of 2--->
</div>
<div id="main-contents">
<!--contents of 3-->
</div>
</div>
我的css如下......
#wrapper{position: relative; width: 1007px; margin: 0 auto;}
#left-nav{width: 329px; height: 100%; background: grey;float: left;}
#yourad{height: 100%; background: blue;}
#main-contents{margin-left: 329px; padding: 10px; background: pink;}
****注意: ****
首先看我的演示来了解我的问题Here
1实际高度的内容:我不知道。
2实际高度的内容:我不知道。
3实际高度的内容:我不知道。
因为我可能需要一些页面更少的内容和一些页面更多的内容。
我试过在html,body,wrapper,left-nav,yourad中使用height: 100%;
,但无法成功。
应用于子元素时,高度100%将使元素伸展到其父级的完整高度。
例如,如果您设置#wrapper {height:600px}和#content {height:100%},则内容div现在的高度为600px。
由于默认的溢出属性是overflow:visible - will not be clipped by contrainsts of containing element,所以会产生混淆。因此,如果没有明确设置隐藏或滚动溢出,内容将流出容器。
您可以通过在父div上设置背景颜色来在您的示例(http://jsfiddle.net/RrmK3/)中看到这一点。
<div id="wrapper" class="wrap">
<div id="left-nav">
<h4>Menu Title</h4>
<ul>
<li><a href="#">Menu Item</a></li>
</ul>
<div id="yourad">
You add is in your sidebar. It is not in your question :)
</div>
</div>
<div id="contents">
<h1>Indenting Code Keeps you Sane.</h1>
</div>
</div>
#contents{ margin-left: 330px; margin-top: 5px; height:100%; }
#wrapper{position: relative; width: 1007px; margin: 0 auto; height:200px; background:pink;}
好吧,这很难以书面形式解释,但我会试一试。
当你将身体设置为100%时,它将始终保持在它开始的高度,因此它会切断可见体下方的任何物体。
这里的问题是你的一个列必须是一个固定的高度,所以你的包装器可以知道如何转换百分比。由于你不知道左导航的高度是什么,你可以欺骗并使用javascript将你的包装器的高度设置为你的左导航的高度,内容文本将正确溢出..
足够的话,这是你如何做到这一点:
$('#wrapper').height($('#left-nav').height());