Web前端基础知识(五)——margin外边距合并

本文深入探讨了Web前端中的margin外边距合并现象,包括如何计算margin,父子元素、兄弟元素以及空元素之间的外边距合并规则。重点讲述了如何避免父元素与子元素的外边距合并,以及在不同情况下外边距合并的行为。

如何计算margin

  • 两个margin都是正值的时候,取两者的最大值;
  • 当 margin 都是负值的时候,取的是其中绝对值较大的,然后,从0位置,负向位移;
  • 当有正有负的时候,先取出负 margin 中绝对值中最大的,然后,和正 margin 值中最大的 margin 相加;
  • 只有普通文档流中块框的垂直外边距才会发生外边距合并,行内框,浮动框或者绝对定位框之间的外边距不会发生合并。

父子元素的外边距合并

当一个div套在另一个div里的时候,两个div都会有margin的属性,必须在外层div添加border属性或者处理为不同的BFC,这样才不会出现外边距合并,如果不做处理,就会出现外边距合并现象。
对外层div设置以下属性可生成BFC:

float: left | right;
overflow: hidden | auto | scroll;
display: table-cell | table-caption | inline-block;
position: absolute | fixed;

ps: inline-block 是个例外,它既没有脱离文档流,但是它的所有的外边距都不会合并。

出现合并现象的父子元素
父亲盒子的外边距设置为10px;
孩子盒子的外边距设置为30px;
最后的外边距为两者中较大的那个,所以最终的外边距为30px;

这里写图片描述
没有出现合并现象的父子元素
这里写图片描述

兄弟元素的外边距合并

当两个div不存在嵌套关系时,两者始终会存在垂直方向上的外边距合并,外边距的值为两者中的最大值。
出现合并现象的兄弟元素
这里写图片描述

空元素的边距合并

空元素本身没有内容(即空元素)、内边距、边框时, 它的上下边距就相遇了, 即会产生叠加(垂直方向)。当为元素添加内容、 内边距、 边框任何一项, 就会取消叠加。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值