CSS 为什么内margin会导致外margin具有边距?

#wai{width:500px;height:500px;background:red;}#nei{width:200px;height:200px;backgroun... #wai{
width: 500px;
height: 500px;
background: red;
}

#nei{
width: 200px;
height: 200px;
background: pink;
margin: 20px;

}
展开
 我来答
超凡且憨厚灬饼子A
2013-12-14 · TA获得超过9400个赞
知道大有可为答主
回答量:5551
采纳率:44%
帮助的人:2393万
展开全部
css外边距自动合并

比如:
p{margin:15px 0;}
<p>段落一</p>
<p>段落二</p>

这时浏览器会把 段落一 和 段落二 之间的距离合并为:15px
而不是:段落一底部15px + 段落二顶部15px = 30px
这个上下外边距自动合并的由来是为了排版上美观的需要而产生的

你遇到的是浏览器在不该合并上下外边距的时候去错误的合并了外边距,导致解析出错误的边界。

解决方法很多,自行百度下,加点边框什么的都能解决。
追问
可能是我表述得不完整  我的HTML的内容是这样的

是一个DIV里面又有一个DIV
里面的DIV设置MARGIN 结果导致外面的DIV也产生了MARGIN,很奇怪。
追答
其实你抓图说得很清楚,很明显就是这个问题。只是我回答的你没概念所以没理解进去。
我说的和 三间北房 说的都是同一个事。

你先百度下:css外边距自动合并,这个东西,有很多配图的说明,看懂了你就明白了。

问题的关键就是里面的div没顶边距,而是跑到外面div的顶部了。因为外边距自动合并的时候,浏览器错误的把外边距弄到外层div上的。
三间北房
2013-12-14 · TA获得超过1311个赞
知道小有建树答主
回答量:629
采纳率:66%
帮助的人:514万
展开全部
根据规范,一个盒子如果没有上补白和上边框,那么它的上边距应该和其文档流中的第一个孩子元素的上边距重叠。

常用的解决方法就是给wai加上overflow:hidden;

有兴趣可以百度一下haslayout和子元素绑架父元素的margin-top
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式