CSS浮动问题急求解答!!!!!!!!!

<html>
<head>
<style type="text/css">
    *{ padding:0px; margin:0px;}
    #king{ border:1px solid #f00; width:500px; height:500px; margin-left:100px; margin-top:100px;}
    #a{ border:1px solid #00f; width:100px; }
    div.a_son{ float:left; border:1px solid #063; width:40px; height:40px;}
    #b{ float:left; border:1px solid #0F0; width:100px; height:100px;}
</style>
</head>
<body>
<div id="king">
    <div id="a">
            <div class="a_son"></div>
            <div class="a_son"></div>
            <div class="a_son"></div>
            <div class="a_son"></div>
    </div>
  <div id="b">
    </div>
</div>
</body></html>

运行结果是这样的:图片说明
为什么b框离顶部会有一段距离啊?????我觉得b框应该飘到最顶端才对啊~~~

float:left是相对的,它要找和它并列的

的float,left是相对于和它同级的
的float,如果找不到,就去它同级的内部找,如果找到就与它同级内部的float为标准,悬浮在它的left(右边),这就是为什么b框没有浮到顶部的原因,
你如果a框有奇数个,b框也会浮在最后一个a框的右边。但是如果内部也找不到,他就会相对于网页的边框为标准,即浮在网页边框的右边,
如果你给id='a'的那个div加上float:left的话,b框就自然浮到顶部,浮到id=‘a’ 的div的右边

body部分:


<body>
<div id="king">
    <div id="a"  class="crearfix"><div class="a_son"></div><div class="a_son"></div><div class="a_son"></div><div class="a_son"></div></div>
    <div id="b">
    </div>
</div>
</body>

用IE F12看下,有没有多余的margin和padding

你在给标签设置magin-top,让它的值为负值就会浮到顶了,如magin-top:-41px;

<!DOCTYPE html>

*{ padding:0px; margin:0px;} #king{ border:1px solid #f00; width:500px; height:500px; margin-left:100px; margin-top:100px;} #a{ border:1px solid #00f; width:100px; float:left; } div.a_son{ float:left; border:1px solid #063; width:40px; height:40px;} #b{ float:left; border:1px solid #0F0; width:100px; height:100px;}


在id=a这个div加css代码:float:left; 因为你id=a这个div没有设置height,也没有设置浮动,导致了以上现象的发生,谢谢