美文网首页
css-BFC(块级格式化上下文)

css-BFC(块级格式化上下文)

作者: HGS | 来源:发表于2021-02-23 17:39 被阅读0次

块级格式化上下文

  1. 上下文定义:

①一个参与多方构建,遵循一定规则,独立的环境;
②子项可能创建新的独立环境,与外层的环境有同样的规则,可是却会和外层隔绝。

橙色的球里面有4个球,然后第4个球里面还包含了2个球,是独立的,与外层是隔离的。
  1. 块级格式化上下文定义:

①Block Formatting Context简称BFC
②块级元素参与构建的、遵循一定规则的独立环境

  1. BFC形成条件

    • 根元素<html>
    • float属性不为none;
    • position为absolute、fixed、sticky
    • display为inline-block、table-cell
    • display: flow-root或者flow-root list-item
    • overflow为hidden、scroll、auto
      推荐使用display: flow-root,没有副作用,但是兼容性很差。
  2. BFC特性

    • 内部的块级盒子会在垂直方向,一个接一个的放置。
    • 两个盒子垂直方向的间距由margin决定,属于同一个BFC的两个相邻盒子的外边距会发生折叠。
    • BFC的区域不会与浮动盒重叠。
    • BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,外面的元素也不会影响到子元素。
    • 计算BFC的高度,浮动元素也参与计算。
  3. BFC应用
    清除浮动,但是可能会有副作用,推荐还是使用伪元素clearfix的方式。

    • 浮动引起父容器高度塌陷


      由于子元素都是浮动,受浮动影响,父元素的高度塌陷无法包裹子元素
    • 解决方案:为父元素wrap加上overflow: hidden;使其形成BFC,根据BFC特性第5条,计算高度时就会计算float的元素的高度,达到清除浮动影响的效果。

      为父元素添加overflow: hidden,清除浮动

阻止元素被浮动元素覆盖,可以实现两栏自适应布局

  • 右侧的元素被浮动元素覆盖


    文字跑到左边的浮动元素下方了
  • 解决方法
    为main设置overflow: hidden/auto触发main元素的BFC,根据BFC特性,BFC的区域是独立的,不会与页面其他元素相互影响,且不会与float元素重叠,因此就可以形成两栏自适应布局。

    自适应两栏布局

防止垂直margin合并

margin合并

可以看到,明明.top和.bottom中间加起来有200px的margin值,但是我们只能看到100px,那是因为他们的外边距相遇发生了合并。

解决方案:
为其中一个元素包裹一层元素,并未这个外层元素设置overflow: hidden;使其形成BFC。因为BFC内部是一个独立的容器,所以不会与外部相互影响,可以防止margin合并。

给一个元素外层加div

参考:饥人谷课件
https://www.jianshu.com/p/8e92c059db79

相关文章

  • 学习BFC格式化上下文笔记

    BFC格式化上下文 块级格式化上下文(Block Fromatting Context)是按照块级盒子布局的。 B...

  • 格式化上下文

    格式化上下文: 页面中的一块渲染区域,同一个格式化上下文内和不同格式化上下文之间的定位方式都会化生变化; 分为块级...

  • BFC

    block formatting context 块级格式化上下文 浮动元素,绝对定位元素,非块级盒子的块级容器(...

  • css

    描述BFC(块格式化上下文)及其工作原理。 BFC 即 Block Formatting Contexts (块级...

  • BFC IFC

    每个块级盒子都会参与块格式化上下文(block formatting context)的创建 行内级元素会生成行内...

  • web前端入门到实战:CSS里的BFC和IFC的用法

    一、BFC Block Formatting Contexts (BFC,块级格式化上下文),就是 一个块级元素 ...

  • 关于BFC那些事

    BFC(Block Formatting Context): 块级格式化上下文 首先,我们要看清标题,这是块级!不...

  • BFC和IFC

    BFC 块级格式化上下文 IFC 行内格式化上下文

  • CSS知识点----BFC

    BFC(块级格式化上下文) 块格式化上下文(Block Formatting Context,BFC) 是Web页...

  • BFC / IFC

    BFC(Block Formatting Context)块级格式化上下文 定义:一个块格式化上下文 ( BFC ...

网友评论

      本文标题:css-BFC(块级格式化上下文)

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