css - 奇怪的 float 清除问题

标签 css css-float

我有一个非常基本的布局,一个 float div 用于左侧菜单容器列,一个全宽非 float div,内容区域有左边距。

当我将 float 的 div 放入内容区域时,它们会 float 并按预期放置,直到我清除 float 。

下一行 float 不会出现在上一行的正下方,而是一直低于菜单栏的底部

正如您在下面看到的,布局没有什么特别之处,但 float 问题让我抓狂:)

<div style="float: left; width: 200px; height: 200px; border: 1px solid red;">
    floated left div
</div>
<div style="margin-left: 210px; border: 1px solid blue;">
    non floated right div containing floated divs inside<br />
    <div style="float: left; border: 1px solid green;">1st float</div>
    <div style="float: left; border: 1px solid green;">2nd float</div>
    <div style="float: left; border: 1px solid green;">3rd float</div>
    <br style="clear: left;" />
    <div style="float: left; border: 1px solid green;">1st float</div>
    <div style="float: left; border: 1px solid green;">2nd float</div>
    <div style="float: left; border: 1px solid green;">3rd float</div>
    <br style="clear: left;" />
    <div style="float: left; border: 1px solid green;">1st float</div>
    <div style="float: left; border: 1px solid green;">2nd float</div>
    <div style="float: left; border: 1px solid green;">3rd float</div>
    <br style="clear: left;" />
</div>

我制作了一个 jsfiddle 来演示这个问题; http://jsfiddle.net/jP6e9/

最佳答案

这是您需要使用 overflow:auto 来获得您想要的内容的古怪情况之一。

<div style="margin-left: 210px; border: 1px solid blue;overflow:auto;">

jsFiddle example

你需要触发 block formatting context通过结合使用 overflow 属性和 float 属性。

另请参阅:http://www.w3.org/TR/CSS21/visuren.html#block-formatting , http://www.yuiblog.com/blog/2010/05/19/css-101-block-formatting-contexts/ , 和 How does the CSS Block Formatting Context work?有关 block 格式化上下文的一些有用信息。

关于css - 奇怪的 float 清除问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17070185/

相关文章:

css - Sass 可以执行混合算术吗?

css - Nav Pills 数据没有崩溃

css - 如何制作2列堆叠 float div

css - 集中 float 元素

css float ,不 float ?

javascript - 在 Rails 中使用 <%= image_tag> Bootstrap 模态

html - 如何设置:disabled pseudo element/class on :before pseudo element

python - 如何通过整个 MainWIndow 将 CSS 样式应用到 QMenu

css - Foundation Float Grid 被输入组破坏

html - 在 :after psuedo element breaks to new line when there is a space in HTML 上向右浮动