这是我的jsFiddle
我只有三个divs,第二个div在右边,第三个div就在第二个下面。
在第三个div中,我设置了margin-top属性,该属性对布局没有任何影响。
问:有人能解释我理解浮子的行为吗?
<div class="header">
</div>
<div class="sidebar">
</div>
<div class="footer">
</div>CSS
.header {
    width: 100%;
    height: 80px;
    background-color: #abcdef;
}
.sidebar {
    margin-top: 15px;
    float: right;
    width: 200px;
    height: 200px;
    background-color: #abcdef;
    display: block;
}
.footer {
    clear: both;
    margin-top: 20px;
    width: 100%;
    height: 60px;
    background-color: #000000;
}发布于 2013-05-15 15:34:18
这一点也不出乎意料。.sidebar通过其float属性从常规流布局中删除,因此不再占用任何空间。.footer有一个clear规则,所以它在任何浮动之下都是强制的,但这会自动地将它放在最后一个元素后面,即是流布局的部分。因此,它的20 at的裕度要求完全满足,并出现在它的逻辑当前位置。您可以通过将上边距设置为220 5px来验证这一点,它将出现在侧栏下面的5 5px (220-215)。
您可以很容易地通过将margin-bottom:20px放在侧边栏上来实现您想要的效果,因为它将被要求保持与页脚的距离,并将其向下推。
https://stackoverflow.com/questions/16569198
复制相似问题