什么规则导致这种堆放?

css 代码如下:
<html>

<style type="text/css">

body{

    margin:0px;
    }
div.box{
    width:640px;
    height:800px;
    }
div.box1{
    width:500px;
    height:100px;
    background-color: red;
    float:left;
    }
div.box2{
    width:140px;
    height:140px;
    background-color: blue;
    float:left;
    } 

div.box3{
    width:250px;
    height:280px;
    background-color: green;
    float:left;
    }
div.box4{
    width:250px;
    height:200px;
    float:left;
    background-color: purple;
    }
div.box5{
    width:140px;
    height:220px;
    background-color: yellow;
    float:left;
    }
div.box6{
    width:100px;
    height:120px;
    float:left;
    background-color: red;
    }
</style>
<body>
    <div class="box">

<body>

<div class="box">
    <div class="box">
    <div class="box3">box3
    </div>
    <div class="box4">box4
    </div>
    <div class="box5">box5
    </div>
    <div class="box6">box6
    </div>
</div>
 </body>

</html>

效果如下:
图片描述

1.为何box6没有堆在 box3 上面?
2。为何box6 和box4有一个空隙?

阅读 2.2k
1 个回答

当你给所有的div设置浮动后,它们其实相当于在同一个流中。

规律是,当在同一行里放不下时,下一个元素会紧贴上一行最后一个元素,并尽可能的往最左移动。也就是,最先是向上浮动,然后再向左浮动。

clipboard.png
所以你可以看到box6其实是紧贴box5的底部的。

clipboard.png
修改一下Box5的高度,box6跟着往下走了

clipboard.png

修改box4的高度,由于box6不能在原来的位置紧贴box5的底部,所以往右移动了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题