码迷,mamicode.com
首页 > Web开发 > 详细

浅谈CSS外边距重叠

时间:2016-01-17 10:56:17      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

这桌有如下几道菜,喜欢请拿走哟。

1、重叠发生的机制
2、border和padding如何阻止了重叠
3、重叠解决方案

 

**重叠发生的常见情况**
1.元素互为相邻关系
2.元素互为包含关系(父子关系)

**重叠发生的机制**
无论是相邻关系还是包含关系,重叠发生依赖于两个元素的margin能够相互接触到!!相互触碰到!相互摩擦!

**相邻关系**

<div class="man" style="width:400px;height:100px;background:red;margin-bottom:100px;"></div>
<div class="brother" style="width:400px;height:50px;background:#af3;margin-top:50px;"></div>

技术分享
如果添加border或者padding还会发生重叠吗?答案是肯定的。

<div class="man" style="width:400px;height:100px;background:red;margin-bottom:100px;border-style:solid;"></div>
<div class="brother" style="width:400px;height:50px;background:#af3;margin-top:50px;border-style:solid;"></div>

技术分享

不论如何设置padding或者border,对于相邻元素来说,它们的margin都能互相接触!!!!!所以会发生重叠。

**包含关系**

<div style="width:400px;height:400px;background-color:blue;">
<div style="width:200px;height:200px;margin-top:100px;background-color:red;"></div>
</div>

注意,这时候border,padding都是0.父元素的margin和子元素的margin能够相互接触到。

技术分享

如果给父元素加个padding或者border,那么子元素的margin就无法接触到父元素的margin了。因此也无法发生重叠了!这里以border为例。

<div style="width:400px;height:400px;background-color:blue;border-style:solid;">
<div style="width:200px;height:200px;margin-top:100px;background-color:red;"></div>
</div>

技术分享

如果给子元素添加border或者padding是不起作用的。

**外边距重叠的解决方式**
1.创建BFC(BFC是个坑,以后再聊吧)
2.避免margin的亲密接触。

 

浅谈CSS外边距重叠

标签:

原文地址:http://www.cnblogs.com/gsly/p/5136835.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!