前端面试必备——外边距合并
来源:互联网 发布:网络拔草是什么意思啊 编辑:程序博客网 时间:2024/06/17 15:29
因本人最近正忙于校招应聘,所以特此设计《前端面试必备》系列,总结面试问题并分享给大家,因能力不足,如有问题,敬请指正,特此感谢。
块的顶部外边距和底部外边距有时候会被折叠为单个外边距,其大小为两值中的最大值,这种行为就被称为外边距合并。
一般发生外边距合并主要有以下三种情况:
- 相邻兄弟姐妹元素
- 父元素和子元素
- 空元素
相邻兄弟姐妹元素
两个兄弟元素之间的外边距,会取两个元素外边距的最大值。
<p style="margin-bottom: 30px;">这个段落的下外边距被合并...</p><p style="margin-top: 20px;">...这个段落的上外边距被合并。</p>
按照上面的例子可以得出,两个p元素之间距离为30px。
父元素和子元素
这种情况又可以分为以下两种:
- 父元素的上外边距和第一个子元素的上外边距
- 父元素的下外边距和最后一个子元素的下外边距
这两种情况,最终显示出来的结果都是取二者中的最大值。
空元素
自己的上外边距会和自己的下外边距合并
<p style="margin-bottom: 0px;">这个段落的和下面段落的距离将为20px</p><div style="margin-top: 20px; margin-bottom: 20px;"></div><p style="margin-top: 0px;">这个段落的和上面段落的距离将为20px</p>
这样第一个p元素和第三个p元素之间距离为20px
阻止合并方法
这部分将讲解不会发生外边距合并的情况。
通用方法
- 处于静态流元素会发生合并,所以
float
和position:absolute
都不会发生合并 - 设置为
inline-block
,也不会发生合并
针对于父元素和子元素情况不合并方法
以下都不会发生合并
1. 设置了清除浮动属性
2. 因为margin
需要直接接触才能合并,所以父元素或子元素中有border
或padding
,或者二者之间有元素
注意
- 如果两个外边距值中有一个为0,也会发生合并。
- 如果有负外边距,合并后外边距为最大正边距加上最小负边距(绝对值最大的一个),如上面元素下边距为
20px
,下面元素上边距为-20px
,则最后为0px
参考资料
外边距合并MDN
「CSS」Margin Collapsing - 外边距合并
欢迎订阅掘金专栏和知乎专栏
阅读全文
0 0
- 前端面试必备——外边距合并
- Web前端基础知识(五)——margin外边距合并
- 从零开始前端学习[7]:外边距合并以及清除外边距合并
- 前端面试必备——图
- CSS外边距合并
- css外边距合并
- CSS 外边距合并
- margin外边距合并
- CSS外边距合并
- CSS 外边距合并
- CSS外边距合并
- CSS 外边距合并
- Css外边距合并
- CSS外边距合并
- CSS外边距合并
- CSS 外边距合并
- CSS外边距合并
- css外边距合并
- typedef
- zTree应用实例详讲(4)
- VM安装Win10
- Clang-Format-Options 中文翻译 (未完待续)
- vuex so easy
- 前端面试必备——外边距合并
- Ubuntu 16.04 启用root
- Handler为什么不能实现进程间通讯
- MVP模式
- 机器学习算法选择
- MongoDB常用shell命令
- mysql连不上数据库一步搞定
- Oracle左连接、右连接、全外连接以及(+)号用法
- LeetCode 16.3Sum Closest