+ -
当前位置:首页 → 问答吧 → 浮动元素的margin-top 是以什么为参照的?

浮动元素的margin-top 是以什么为参照的?

时间:2011-08-20

来源:互联网

<style>
body,div{margin:0;padding:0;}

#aa{
height:200px;
width:200px;
margin-left:20px;
margin-top:20px;
background:red;
float:left;
}

#bb{
height:200px;
width:300px;
margin-left:20px;
margin-top:40px;
background:green;
}
</style>
</head>

<body>
<div id="aa"></div>
<div id="bb"></div>
</body>

代码很简单,在Firefox下,效果图如下:

很奇怪,为什么aa层浮动后,上边界距离body的上边界竟有60px(40+20) ! 其margin-top难道不是以body的上边界为参照的?

作者: zhoufs   发布时间: 2011-08-20

父元素。

作者: KongHuLu   发布时间: 2011-08-20

引用 1 楼 konghulu 的回复:

父元素。


aa的父元素是哪个? bb与aa并列的,并不是aa的父元素。aa的父元素应该是body 。

如果去掉bb,则似乎又变得正常了。 这个怪现象在Opera下也同样发生。

作者: zhoufs   发布时间: 2011-08-20

LZ试下下面这样...也就是在aa之前添加任意字符
HTML code
<style>
body,div{margin:0;padding:0;}

#aa{
height:200px;
width:200px;
margin-left:20px;
margin-top:20px;
background:red;
float:left;
}

#bb{
height:200px;
width:300px;
margin-left:20px;
margin-top:40px;
background:green;
}
</style>
</head>

<body>
a
<div id="aa"></div>
<div id="bb"></div>
</body>

作者: ma2jiajia   发布时间: 2011-08-20

to #3楼,我也发现这个现象,aa前随便加点东西,好像又正常了。 另外,给body添加

{border-top:#F0F 1px solid;}

后,也变得正常了。 但就是不知道是什么原因。

作者: zhoufs   发布时间: 2011-08-20

换下aa与bb位置你看看
float脱离文档流,但是位置是被挤到在static位置下面。

作者: KongHuLu   发布时间: 2011-08-20

热门下载

更多