css布局中BFC的事情

在页面布局中,其实很多地方都用到了BFC只不过,不知道它叫这个名字。

BFC,说是块盒作用域上下文,包括从开始写页面,html,也是一个bfc 形成这个的因素很多。最开始布局使用的浮动,清除浮动,就是给2个相邻的元素创建各自的BFC,这样就不会收到浮动的影响,比如:父元素下面2个div都浮动了,导致它两脱离文档流,父元素不能包裹住它两(高度塌陷),如果不受其影响,那么常用的办法是给父元素设置overflow:hidden。

 

我复制一下大佬的总结:

  BFC如何创建:

  • 根元素(浮动元素(元素的float不是 absoluteinline-block
  • 表格单元格(元素的 displaytable-caption,HTML 表格标题默认为该值)
  • 匿名表格单元格元素(元素的 display (分别是HTML table、row、tbody、thead、tfoot的默认属性)或 table-row-grouptable-header-grouptable-footer-groupvisible的块元素
  • display实际flow-root 的元素
  • containcontent 油漆 的元素
  • 弹性元素(displayinline-flex 元素的直接子元素)
  • 元素元素(displayinline-grid 元素的直接子元素)
  • 多列容器(元素的 column-countcolumn-width(en-US)
  • all 的元素总是会创建一个新的 BFC,即使元素没有在一个多列容器中

    BFC布局规则:

    • 内部的Box会在垂直方向,一个接一个地放置(即块级元素独占一行)。
    • BFC的区域不会与float box重叠(利用这点可以实现自适应两栏布局)。
    • 内部的Box垂直方向的距离由margin决定。
    • 属于同一个BFC的两个相邻Box的margin会发生重叠(margin重叠三个条件:同属于一个BFC;相邻;块级元素)。
    • 计算BFC的高度时,浮动元素也参与计算。(清除浮动 haslayout)
    • BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。
posted @ 2024-09-24 17:05  果粒陈~  阅读(11)  评论(0编辑  收藏  举报