美文网首页
BFC margin重叠

BFC margin重叠

作者: seepDown | 来源:发表于2018-12-04 13:28 被阅读0次

BFC:块级格式化上下文,它是指一个独立的块级渲染区域,只有Block-level BOX参与,该区域拥有一套渲染规则来约束块级盒子的布局,且与区域外部无关。

满足下列CSS声明之一的元素便会生成BFC。

1、根元素

2、float的值不为none

3、overflow的值不为visible  (这一条不知道为什么对于上下元素的时候不起作用。)

4、display的值为inline-block、table-cell、table-caption

5、position的值为absolute或fixed

margin重叠是发生在同一BFC内的块级元素

当发生重叠的时候:

1、当两个margin都是正值的时候,取两者的最大值;

2、当 margin 都是负值的时候,取的是其中绝对值较大的,然后,从 0 位置,负向位移;

3、当有正有负的时候,先取出负 margin 中绝对值中最大的,然后,和正 margin 值中最大的 margin 相加。

如何解决重叠问题:

1、对于上下相邻的两个元素,只要把其中一个设置为display:inline-block。按理论来说,将其中一个设置为overflow:hidden,也可以达到消除重叠的效果,结果却没有,不知道为什么。

2、给父元素设置border或者padding,子元素的margin就不会与父元素重叠。例如margin-top。

给父元素设置    overflow: hidden或者display: inline-block或者float: left或者position: absolute,子元素的margin就不会与父元素重叠。

给子元素设置display: inline-block,子元素的margin就不会与父元素重叠。

3、当父元素没有设置宽高,子元素浮动的时候,会使得父元素高度塌陷,这时候只需要给父元素设置overflow: hidden或者display: inline-block或者float: left或者position: absolute。都可以解决这个问题。根本原因在于创建BFC的元素,子浮动元素也会参与其高度计算,即不会产生高度塌陷问题

4、与浮动元素相邻的已生成BFC的元素不能与浮动元素相互覆盖。利用该特性可以作为多栏布局的一种实现方式。overflow: hidden或者display: inline-block或者float: left或者position: absolute。

.left{

      background:pink;

      float: left;

      width:180px;

    }

.center{

      background:lightyellow;

      overflow:hidden;

    }

 .right{

      background: lightblue;

      width:180px;

      float:right;

    }

外边距重叠解决:

  1.外层元素padding代替

  2.内层元素透明边框 border:1px solid transparent;

  3.内层元素绝对定位 postion:absolute:

  4.外层元素 overflow:hidden;

  5.内层元素 加float:left;或display:inline-block;

  6.内层元素padding:1px;

相关文章

  • BFC margin重叠

    BFC:块级格式化上下文,它是指一个独立的块级渲染区域,只有Block-level BOX参与,该区域拥有一套渲染...

  • 从margin重叠到bfc

    创建demo.html,内容如下 open demo.html,看到如图 test1和test2的margin重叠...

  • 「css零碎」使用技巧

    1. 使用尽量使用padding代替margin因为BFC问题, margin上下有可能会重叠 2. positi...

  • 2019-07-24

    2.1 什么是BFC?垂直margin重叠是为什么?怎么解决这个问题? BFC是块级格式化上下文,相当于开辟了一块...

  • 什么是BFC

    平时的工作中我们都是使用过BFC(如清浮动,防止margin重叠等),但是相信还是有一部分人不清楚什么叫做BFC,...

  • 你不知道的 CSS 秘密:margin篇

    本篇讲解的是主要是BFC 可以解决的 margin 重叠问题 ,如对你有帮助 ,请点个赞给个鼓励,谢谢~ 先来一张...

  • margin重叠

    通常特性:1.block水平元素(不包括float和absolute元素)2.不考虑writing-mode,只发...

  • CSS解决外边距重叠和高度坍塌

    什么是外边距重叠: 当给子元素设置margin-top的时候 父元素会跟着移动 解决方法一 触发BFC 以下条件满...

  • css布局--左固定右自适应两栏布局

    默认结构: 可以利用以下方法达到左侧固定右侧自适应的效果: 利用BFC与浮动元素不重叠 利用浮动和margin-l...

  • 多列布局思路

    首先阅读:BFC与多列布局 通过BFC特性:float + BFC盒子 通过margin回拉(用到float)或绝...

网友评论

      本文标题:BFC margin重叠

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