1

我有一个像这样的网页结构:

<div class="total">
    <div class="menu">
    </div>
    <div class="content">
    </div>
</div>

所以“菜单” div 包含我的左侧菜单,“内容” div 包含一些动态文本。实际上,我所做的结构都以正确的方式定位在我的“总”div中。我实际上在我的 CSS 上编辑了我的“总”div,如下所示:

.total{
position:relative;
top:50px;
margin: 0 auto;
background-color:#eeeeee;
height:auto;
border:2px solid #000;
border-color:rgb(82,115,154);
}

问题是我无法获得我真正想要的东西:边框都在顶部(它就像一个水平行)并且我的具有不同背景颜色的 div 没有出现。

如何使“总” div 的高度动态化?

编辑:链接到jsFiddle

4

2 回答 2

6

.total元素已完全折叠,因为它的所有子元素都是浮动的。您需要做的就是添加一个clearfix。

http://jsfiddle.net/CJZCt/3/

.total{
position:relative;
top:50px;
margin: 0 auto;
background-color:#eeeeee;
height:auto;
border:2px solid #000;
border-color:rgb(82,115,154);
    overflow: hidden;
}

其他清除浮动的方法可以在这里找到: https ://stackoverflow.com/a/1633170/1652962

于 2012-12-28T13:56:21.757 回答
0

您可以使用 clearfix 解决此问题:http: //nicolasgallagher.com/micro-clearfix-hack/

将此添加到您的 css,并将 cf 类添加到您的 div.content

/**
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    contenteditable attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that are clearfixed.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
.cf:before,
.cf:after {
    content: " "; /* 1 */
    display: table; /* 2 */
}

.cf:after {
    clear: both;
}

/**
 * For IE 6/7 only
 * Include this rule to trigger hasLayout and contain floats.
 */
.cf {
    *zoom: 1;
}

测试:http: //jsfiddle.net/CJZCt/4/

于 2012-12-28T14:00:22.053 回答