美文网首页
Margin Collapse&&BFC

Margin Collapse&&BFC

作者: 胡小胖_ | 来源:发表于2017-07-27 20:31 被阅读0次

上一篇中说道了position、display、float三兄弟,它们三者之间拥有各自的特性以及相互作用。而这些影响归根揭底都是盒子模型的位置问题,但盒子模型的位置问题不止是它们三者作用,还有本文中要说道的两位:Margin Collapse和BFC。

Margin Collapse翻译成中文是外边距塌陷,也可以说外边距叠加。他的定义是:

当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。

外边距叠加有几种情况,借用W3School几张图作为直观说明:

第一种情况是两垂直盒子:

第二种情况是父子盒子:

第三种情况是空内容元素本身叠加:

第四种情况是空元素本身叠加又叠加另一个元素的外边距:

而在外边距叠加中有一个注意事项,只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。而且必须处于同一个BFC中。

因此,在外边距叠加问题中又出现一个新的概念,什么是BFC?

w3c规范中的BFC的定义:

浮动元素和绝对定位元素,非块级盒子的块级容器(例如 inline-blocks, table-cells, 和 table-captions),以及overflow值不为“visiable”的块级盒子,都会为他们的内容创建新的BFC(块级格式上下文)。

也就是说,在BFC中的元素是不受外界影响的。

同样,也就是说明创建了新的BFC的元素(例如浮动元素或者’overflow’值为’visible’以外的元素)与它的子元素的外边距不会折叠。

当然,BFC同样可以应用在清除浮动的不利影响下。

生成BFC的方法:

根元素

float属性不为none

position为absolute或fixed

display为inline-block, table-cell, table-caption, flex, inline-flex

overflow不为visible

总结消除外边距叠加的方法:

创建BFC

元素为inline-block时,它与其兄弟元素、子元素和父元素的外边距都不会折叠

创建单侧margin值

相关文章

  • Margin Collapse&&BFC

    上一篇中说道了position、display、float三兄弟,它们三者之间拥有各自的特性以及相互作用。而这些影...

  • 盒模型 相关知识点总结

    1 . 盒模型包括的属性 margin:外边距:包含margin-top、margin-right、margin-...

  • css第三节(2)

    1、css外边距margin margin-top:上外边距 margin-right:右外边距 margin-b...

  • css学习之margin属性

    margin margin 清除周围的(外边框)元素区域。margin 没有背景颜色,是完全透明的。 margin...

  • 4.CSS布局篇之margin负值问题

    margin-top和margin-left负值,元素向上、向左移动 margin-right和margin-bo...

  • css中的内外边距和背景

    css中margin、padding和background margin与padding margin常用代码有 ...

  • CSS外边距

    Margin margin清除周围的元素(外边框)的区域。margin没有背景颜色,是完全透明的margin可以单...

  • html css

    1.margin 塌陷,与margin合并 margin合并不解决,直接设置一个box的margin即可 marg...

  • margin

    上下两个元素若margin都为正值,则取较大值;若margin都为负值,则两值相加;若margin一正一负,则两值相加;

  • margin

    margin [TOC] 一、布局与尺寸 1、margin普通情况下不影响可视尺寸,只有元素在 充分利用可用空间 ...

网友评论

      本文标题:Margin Collapse&&BFC

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