【发布时间】:2016-12-21 05:20:06
【问题描述】:
我遇到了这个非常有趣的事情。正在摆弄花车和clearfix。我有一个包含 3 个左浮动 div 框的部分(容器),为了避免容器折叠,我在其上使用 clearfix 方法。就像之前和之后那样,清空内容,显示块和清除两者。没什么特别的。现在,为了看看这个 clearfix 在顶部和底部的边距如何表现,我在容器外部的顶部创建了一个 div 框。容器的顶部和底部边距均为 50 像素,因此效果很好。但奇怪的是,当我试图将一个橙色的盒子漂浮在容器外时,盒子变成了容器内的容器,对容器的孩子表示敬意。我觉得这很奇怪,因为那个盒子不在容器的标签内,而是在外面。我知道浮动元素已从正常文档流中删除,因此容器的 margin-top 无法再在 div 框上中继,因为它已从文档流中删除,唯一依赖的元素是 body 左侧。但我的问题是:如果橙色盒子不是它的孩子,为什么橙色盒子会被包含在棕色容器中? 之前:
我的意思是橙色盒子本来可以奇怪地移动到任何其他地方,但当它甚至不是容器的孩子时,它并没有很好地包含在容器内, 他们是兄弟姐妹。这里到底发生了什么?
代码是基本的:
<body>
<div id="box1"></div>
<section class="clearfix">
<div class="one">One</div>
<div class="two">Two</div>
<div class="three">Three</div>
</section>
<div id="box"></div>
</body>
.clearfix:before,
.clearfix:after {
content: "";
display: block;
clear: both;
}
#box {
width: 300px;
height: 100px;
background: blue;
}
#box1 {
width: 300px;
height: 50px;
background: orange;
float: right;
}
【问题讨论】:
-
请为一二三类添加css。
-
.one { 背景:rgb(207, 255, 245);float: left; } .two { 背景:rgb(101,209,255);向左飘浮; } .three { 背景:rgb(255, 231, 181);向左飘浮; }