div默认外边距是多少_div外边距的问题

楼主的问题可以分解成几个点

1、重叠发生的机制

2、border如何阻止了重叠

3、重叠解决方案

重叠发生的常见情况

1.元素互为相邻关系

2.元素互为包含关系(父子关系)

重叠发生的机制

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

相邻关系

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

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

包含关系

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

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

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

外边距重叠的解决方式

1.创建BFC(BFC是个坑,以后再聊吧)

2.避免margin的亲密接触。

---------------------------------------1月19更新部分(为加深理解)---------------------------------

刚好看到这个例子,便试了下,觉得可以算是测试margin负值的理解吧。

首先来考虑下这段代码。

verticalMargin

body{margin:0;padding:0;}

li{margin-bottom:20px;background:#ee3;}

ul{background:#af3;margin-bottom:-15px;}

h1{margin-top:-18px;background:#ccc;}

/*h1{background:#ccc;}*/

  • A list item
  • Another list item

A haeding

这里有各种重叠,ul的负外边距、h1的负外边距以及li的正外边距。

以上代码运行的效果最终效果是:

1.文字描述:ul和h1之间相间隔2px

2.实际效果图

为什么会这样呢?

这个问题的思路有两种,

一、是先考虑ul和li之间的重叠,再考虑h1的重叠。(先考虑包含关系再考虑相邻关系)

二、是先考虑ul和h1的重叠,再考虑li的重叠。(先考虑相邻关系再考虑包含关系)

最终得到的结果都一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值