如何防止两个div中的浮动内容重叠?

Seo*_*Seo 10 html css overlap css-float

在FAQ页面中,我试图让我有一个具有这种结构的页面:

<section id="container">

     <div id="faq_primary"></div>
     <div id="faq_sidebar"></div>

</section>

<footer>

     <div id="directory">

          <div id="col_a"></div>
          <div id="col_b"></div>
          <div id="col_c"></div>

     </div>

</footer>
Run Code Online (Sandbox Code Playgroud)

这是相关的CSS:

#container {
    width:960px;
    margin: 0px auto;
    position:relative;
}

#faq_primary {
    width:720px;
    margin:20px 40px 0 0;
    position:relative;
    float:left;
    display:inline; 
}

#faq_sidebar {
    left:760px;
    position:absolute;
}

footer {
    width:1111px;
    height:250px;
    margin:90px auto 0px;
    position:relative;
    background-image:url(../images/footer/bg.png);
    color:#7d7d7d;
}

#directory {
    width:960px;
    margin:0px auto;
    padding-top:25px;
    font-size:13px;
}

#directory ul li{
    padding-bottom:4px;
}

#dir-cola, #dir-colb, #dir-colc, #dir-cold, #dir-cole {
    width:174px;
    height:140px;
    float:left;
}

#dir-cola {
    width:150px;
}

#dir-cole {
    width:143px;
}
Run Code Online (Sandbox Code Playgroud)

我的页面内容在该部分中找到,container页脚位于下方.它faq_sidebarfaq_primary脚本短得多,并且由于页脚中的列都是向左浮动的,它们最终到达faq_primary的右边,在faq_sidebar下面.

这是一个截图: http://i.stack.imgur.com/I1vts.png

任何建议,以便我可以防止页脚和容器中的内容重叠?

Jas*_*aro 7

你可以在这里添加一个清算div

<div id="faq_sidebar"></div>

<div class="clear"></div>

</section>
Run Code Online (Sandbox Code Playgroud)

然后像这样设计它

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

如果不这样做,您可能需要在之后添加它 </section>


Jam*_*ury 7

很难知道没有得到相同的内容,当我尝试这个我不能产生与截图相同.(由于内容不同).

但我很确定你是否:

#container
{
    // ... *snip*
    overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)

将导致容器在计算高度时包含浮动子项.

此外,我建议您更改sidbar left: ...,right: 0如果您正在尝试将其设置为右侧(或者float: right可能是正确的而不是绝对定位).

编辑: -我注意到其中一个相关的问题有相同的答案,我可能倾向于建议这是一个重复.问题: 使外部div自动与其浮动内容的高度相同