为什么我的div未被放置"内部"包装div?

时间:2014-11-11 23:29:34

标签: html css

在以下代码中,#wrapper div包含#left#right div。但它们并不会被包含在#wrapper div中。

我希望将它们视为#wrapper div的内容,因此它们包含在其中,将10px padding应用于#wrapper。他们为什么会流离失所?

JSFiddle here.

<div id="wrapper">
    <div id="left">Alpha</div>
    <div id="right">Bravo</div>
</div>

CSS如下。

#wrapper {
    background-color:grey;
    border-top: 1px solid black;
    border-botton: 1px solid black;
    padding:10px;
}
#left {
    background-color:yellow;
    float:left;
}
#right {
    background-color:pink;
    float:right;
}

我想在不操纵#wrapper的位置属性的情况下解决这个问题,因为这可能会破坏我页面的正常结构(我很害怕)。

3 个答案:

答案 0 :(得分:4)

因为你是浮动他们所以他们坐在DOM流程之外。如果您希望父级考虑它们,请将overflow: hidden添加到父级CSS,或者使用规则clear: both;

在容器底部添加div

演示:http://jsfiddle.net/cros1mrv/1/

答案 1 :(得分:2)

您应该将包装器的溢出设置为overflow: auto,以便在浮动div周围流动。

#wrapper {
    background-color: grey;
    border-top: 1px solid black;
    border-botton: 1px solid black;
    padding: 10px;
    overflow: auto;
}

请参阅this fiddle

答案 2 :(得分:1)

因为漂浮。清除它的一种方法是使用:

#wrapper {
    overflow: hidden;
}