一个简单的css,缺困扰了我很久,求大家帮忙解释一下

2013-03-31 18:33:51 +08:00
 shpasspass
css的代码是这个
.a{
width:950px;
height:500px;
background:#aabbcc;
}

.b{
width:240px;
height:200px;
background:#ff0000;
margin-left:15px;
margin-top:125px;
}
html的代码是这个
<div class="a">
<div class="b"></div>
</div>


问题是,用了margin-left后,b盒子距离a盒子左侧有5px的外边距
但是用了margin-top后,2个盒子都同时向上出现125px的外边据,这是为什么呢?
我的问题是,为什么上边距加上去后,对ab2个盒子都产生了作用,而只加左边距,那么就只对b盒子产生了作用。
2681 次点击
所在节点    问与答
5 条回复
best1a
2013-03-31 18:51:09 +08:00
zetttt
2013-03-31 18:59:35 +08:00
就是简单的浮动问题
给.a 加个 float:left 就好了
shpasspass
2013-03-31 19:04:26 +08:00
@best1a 原来还有这么一说。hoho
shpasspass
2013-03-31 19:04:49 +08:00
@zetttt 原来还可以这样,hoho
emric
2013-03-31 19:19:39 +08:00
LS说对了,这个属于边距重叠的问题.
给父元素设置overflow:hidden,就OK/
还有几种方法:
http://www.benben.cc/blog/?p=98
参考&文档:
http://www.w3.org/TR/CSS21/box.html#collapsing-margins

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/64570

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX