美文网首页
外边距合并与BFC

外边距合并与BFC

作者: 勿以浮沙筑高台 | 来源:发表于2016-12-21 02:22 被阅读18次

外边距合并##

块级元素的 上外边距(margin-top
) 与 下外边距(margin-bottom
) 有时会合并(塌陷)为单个外边距,这样的现象称之为 外边距合并(塌陷)。

下面三种基本情形会出现外边距塌陷:

毗邻兄弟元素######

毗邻的两个兄弟元素之间的外边距会塌陷(当后者被 清除浮动 时除外)。

<p style="margin-bottom: 30px;">这个段落的下外边距被合并...</p>
<p style="margin-top: 20px;">...这个段落的上外边距被合并。</p>
块级父元素与其第一个/最后一个子元素######

如果块级父元素中,不存在上边框上内补inline content清除浮动这四条属性(对于上边框和上内补,也可以说,当上边距及上内补宽度为0时),那么这个块级元素和其第一个子元素的上边距就可以说”挨到了一起“。此时这个块级父元素和其第一个子元素就会发生上外边距合并 现象,换句话说,此时这个父元素对外展现出来的外边距将直接变成这个父元素和其第一个子元素的margin-top的较大者。
类似的,若块级父元素的 margin-bottom 与它的最后一个子元素的margin-bottom 之间没有父元素的 border
padding
inline contentheight 分隔时,就会发生 下外边距合并 现象。
空块元素
如果存在一个空的块级元素,其 borderpadding
)、inline content
heightmin-height 都不存在。那么此时它的上下边距中间将没有任何阻隔,此时它的上下外边距将会合并。例如:

<div style="margin-top: 20px; margin-bottom: 20px;"></div>s

简单的说:垂直方向上两个相邻的(在同一个 块级格式化上下文 中) 外边距 会发生合并,合并后的外边距是两者中的较大者。在负外边距的情况下,合并后的外边距为最大正外边距与最小负外边距之和。


BFC##

块格式化上下文(block formatting context) 是页面 CSS 视觉渲染(visual CSS rendering)这个过程中的一个概念。它是决定块盒子的布局及浮动元素相互影响的一个因素。

下列情况将创建一个块格式化上下文:######
  • 根元素或其它包含它的元素
  • 浮动 (元素的 float 不为 none)
  • 绝对定位元素 (元素的 position 为 absolute 或 fixed)
  • 行内块 inline-blocks (元素的 display: inline-block)
  • 表格单元格 (元素的 display: table-cell,HTML表格单元格默认属性)
  • 表格标题 (元素的 display: table-caption, HTML表格标题默认属性)
  • overflow 的值不为 visible的元素
  • 弹性盒子 flex boxes (元素的 display: flex 或 inline-flex)

块格式化上下文包括了创建该上下文的元素的所有子元素,但不包括创建了新的块格式化上下文的子元素。

块格式化上下文定位清除浮动 很重要。定位和清除浮动的样式规则只适用于处于同一块格式化上下文内的元素。浮动不会影响其它块格式化上下文中元素的布局,并且清除浮动只能清除 同一块格式化上下文中 在它前面的元素的浮动。

相关文章

  • 外边距合并与BFC

    外边距合并## 块级元素的 上外边距(margin-top) 与 下外边距(margin-bottom) 有时会合...

  • 外边距合并/BFC

    1.在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 以下是 三种发生...

  • 外边距折叠 margin合拼 原理

    外边距折叠 margin合拼 外边距折叠(margin collapsing) 对于块级元素而言,其 上外边距 和...

  • margin(垂直外边距合并、margin负值)

    垂直外边距合并的问题 外边距合并出现的三个场景 同一个BFC,且同处于普通流中的垂直相邻元素外边距合并 父子元素的...

  • inline-block、BFC、边距合并

    外边距合并及破解方法 同一个BFC中常规文档流的两个在垂直方向“相邻”的块级盒子会出现外边距合并。 两个外边距都是...

  • css相关

    外边距叠加问题当两个外边距相遇时(中间没有border、padding等)凡是未形成块级格式化上下文(BFC)的盒...

  • inline-block、BFC、边距合并相关知识点

    一、在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例(一)出现外边距合...

  • 任务11- inline-block、BFC、边距合并

    问题 1. 在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 外边距合...

  • 前端基础(inline-block、BFC、边距合并)十一

    问答 1. 在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 外边距合...

  • 浮动定位、BFC、外边距合并

    1. 浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素脱离了普通文档流。如果父...

网友评论

      本文标题:外边距合并与BFC

      本文链接:https://www.haomeiwen.com/subject/ervomttx.html