这篇文章给大家分享的是有关css中什么是外边距折叠的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
在 CSS 中,所有的元素都被一个个的 “盒子(box)” 包围着,我们广泛地使用两种“盒子” —— 块级盒子 (block box
) 和 内联盒子 (inline box
)。
什么是 CSS 盒模型?
在 CSS 中,盒模型(box model)是在设计和布局时使用。
盒模型的定义可以分成这几部分:
Content box: 这个区域是用来显示内容,大小可以通过设置 width
和 height
.
Padding box: 包围在内容区域外部的空白区域; 大小通过 padding
相关属性设置。
Border box: 包裹内容和内边距。大小通过 border
相关属性设置。
Margin box: 这是最外面的区域,是盒子和其他元素之间的空白区域。大小通过 margin
相关属性设置。

块级盒子完整地应用了 CSS 盒模型,内联盒子只使用盒模型中定义的部分内容。
box-sizing
box-sizing
属性定义了浏览器应该如何计算一个元素的总宽度和总高度。
不论那种模型,margin 都是不计入实际大小 —— 当然,它会影响盒子在页面所占空间,但是影响的是盒子外部空间。
display
这里可以补充一个概念 -- 内部和外部显示类型。
如果设置 display: flex
,在一个元素上,外部显示类型是 block
,但是内部显示类型修改为 flex
。 该盒子的所有直接子元素都会成为 flex
元素,会根据 弹性盒子(Flexbox
)规则进行布局。
还有一个特殊的值 -- display: inline-block
,它在内联和块之间提供了一个中间状态。这对于以下情况非常有用:不发生换行,但可以设定宽度和高度,也就是说实现了块级的部分效果:
行内元素 / 块级元素
HTML4 中,元素被分成两大类: inline
(内联元素) 与 block
(块级元素)。
1. 什么是行内元素?
一个行内元素只占据它对应标签的边框所包含的空间。
常见的行内元素有 a
、 b
、 span
、 img
、 strong
、 sub
sup
、 button
、 input
、 label
、 select
、 textarea
2. 什么是块级元素?
块级元素占据其父元素(容器)的整个空间,因此创建了一个“块”。通常浏览器会在块级元素前后另起一个新行。
常见的块级元素有 div
、ul
、ol
、 li
、 dl
、 dt
、 dd
、 h2
、 h3
、 h4
、h5
、 h6
、h7
、p
3. 区别?

外边距(margin)折叠
块的上外边距(margin-top
)和下外边距(margin-bottom
)有时合并(折叠)为单个边距,其大小为单个边距的最大值(或如果它们相等,则仅为其中一个),这种行为称为 边距折叠。
什么情况才会出现
2 个或多个毗邻的的普通流中的块元素垂直方向上的 margin 会折叠
如何解决?
触发 BFC
的因素
感谢各位的阅读!关于“css中什么是外边距折叠”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!