如何设置滚动高度?

问题描述 投票:1回答:2
+-------------+      +---------------------------------+
|             |      |                                 |
|     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%;,但无法成功。

html css height
2个回答
0
投票

应用于子元素时,高度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;}

0
投票

好吧,这很难以书面形式解释,但我会试一试。

当你将身体设置为100%时,它将始终保持在它开始的高度,因此它会切断可见体下方的任何物体。

这里的问题是你的一个列必须是一个固定的高度,所以你的包装器可以知道如何转换百分比。由于你不知道左导航的高度是什么,你可以欺骗并使用javascript将你的包装器的高度设置为你的左导航的高度,内容文本将正确溢出..

足够的话,这是你如何做到这一点:

$('#wrapper').height($('#left-nav').height());

http://jsfiddle.net/Y7PhV/106/

© www.soinside.com 2019 - 2024. All rights reserved.