日期:2014-05-17  浏览次数:20824 次

关於这组代码margin跟float的原理我搞不懂
请帮我看下面这组代码
----------------------------------

<!doctype html>
<html>
<head>
<title>テスト</title>
<style type="text/css">


div {
width:50px;
height:50px;
}

#a {
float:left;
margin:150px;
background-color:blue;
}
#b {
margin:50px;
border:50px solid red;
padding:50px;
background-color:orange;
}


</style>
</head>
<body>


<div id="a"></div>
<div id="b"></div>


</body>
</html>

--------------------------------------
照理说已经float的a应该在b的正中央,
a距离网页最上面的距离应该是margin:150px不是吗?
为什麽会跟b的margin-top:50px相加距离变200px?

就本人所知float後的元素上下margin是不会抵销没错
可是在HTML里a的是在b的前面
再怎麽样都不可能有a的margin-top加b的margin-top的情形吧?
是我哪边理解错误了吗?
div float margin

------解决方案--------------------
你上面的理解都没有错误,但你忽略了一点(body元素和第二个div  b的外边距合并),这使得b的上外边距在body的内容的外面,而a为浮动元素不会发生外边距叠加,所有a整个在body里面(在body不加尺寸限制的情况下),所有就这样了