清晰财产的怪异行为

时间:2014-10-19 18:05:16

标签: html css

我在互联网上遇到了以下代码。它有效,但我不知道它的工作原理是什么? 所有div框都进入容器div,当最后添加一个清除两个属性的虚拟div时,否则它们会留在容器外面。我自己得到的另一件事是当clear设置为left时它仍然正常工作。

HTML

<div id="main_container">
 <p>Some content.</p>
 <div class="floated_box"></div>
 <div class="floated_box"></div>
 <div class="floated_box"></div>
 <div class="floated_box"></div>
 <div class="floated_box"></div>
 <div style="clear: both;"></div>
</div>

CSS

#main_container {
 width: 400px;
 margin: 20px auto;
 border: 2px solid #cccccc;
 padding: 5px;
}

.floated_box {
 float: left;
 width: 100px;
 height: 100px;
 border: 1px solid #990000;
 margin: 10px;
}

1 个答案:

答案 0 :(得分:1)

1。我们经常读到a float is not in the flow。这种行为的一个副作用是浮动元素不会影响其父级的高度。您观察到 [浮动元素]停留在容器外有些不正确;浮动元素保留在容器内,但容器的高度为0,因此这些元素在外部呈现。

2. clear property表示清除元素的左侧,右侧或两侧不允许浮动元素。在浮动元素之后添加已清除元素时,它会被推到它前面出现的所有左和/或右浮动元素下方以满足条件。 (请记住:左浮动元素允许内容沿其右侧流动;右浮动元素允许内容围绕其左边缘流动;清除的内容绕过此功能)。

已清除的元素仍然是一个in-flow元素,当它被按下时将会拉伸父元素。