Float创建重叠的Div

PF1*_*PF1 10 html css

我有两个div(一个在另一个内部)并且当我将一个内部浮动到"left"时遇到了一些问题.问题是外部div不会扩展其高度以适应内部div内部的文本.由于这可能相当令人困惑,我将尝试用一些代码来解释它.

HTML:

<body>
    <div id="div1">
        Inner Div:
        <div id="div2">Testing long content.</div>
    </div>
</body>
Run Code Online (Sandbox Code Playgroud)

CSS:

#div2 {
    float: left;
    width: 10px;
}
Run Code Online (Sandbox Code Playgroud)

我宁愿希望在测试时这实际上显示了我的问题,因为我没有机会测试这个.我的真实代码有更多的属性,如果需要我将构建这些属性.

Sam*_*son 28

您需要使用clear-fix.在浮动div之后插入以下内容,并在包含div中.

<div class="clear"></div>
Run Code Online (Sandbox Code Playgroud)

并添加以下样式:

.clear { clear:both; }
Run Code Online (Sandbox Code Playgroud)

例:

<div class="container">
  <div class="floatedDiv">Hello World</div>
  <div class="clear"></div>
</div>
Run Code Online (Sandbox Code Playgroud)


Emi*_*ily 8

如果您不想在html中添加额外的标记或向外部div添加宽度,可以使用:

#div1 {
    overflow:hidden;   /* clears float for most browsers */
    zoom:1;            /* clears float for IE6           */
    }
Run Code Online (Sandbox Code Playgroud)


Mic*_*iel 5

也许方便注意,还有一个众所周知的clearfix代码来自positioniseverything专门为这个问题编写,并且可能是最强大和最容易在任何情况下应用.CSS看起来如下:

<style>
div.clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
div.clearfix { display: inline-block; margin: 0 0 8px 0; }
/* Hides from IE-mac \*/
* html div.clearfix { height: 1%; }
div.clearfix { display: block; }
/* End hide from IE-mac */
</style>
Run Code Online (Sandbox Code Playgroud)

为了在您的情况下使用它,您将执行以下操作:

<body>
<div id="div1" class="clearfix" >Inner Div:
<div id="div2">Testing long content.</div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)