理解BFC

作者: 扫地僧练级 | 来源:发表于2023-12-18 16:06 被阅读0次

定义

BFC(Block formatting context)直译为"块级格式化上下文"。是一个独立的渲染区域,只有 Block-level box 参与, 它规定了内部的 Block-level Box 如何布局,并且与这个区域外部毫不相干

布局规则

  • 内部的 Box 会在垂直方向一个一个的放置
  • Box 垂直方向的距离由 margin 决定, 属于同一个 BFC 的两个相邻 Box 的 margin 会发生重叠
  • 每个元素的 margin 左边与包含块 border box 的左边相接触, 即使存在浮动
  • BFC 区域不会与 float box 重叠
  • 一个独立的隔离容器, 容器里面的子元素不会影响到外面的元素, 外面的也不会影响到里面的
  • 计算 BFC 告高度, 浮动元素也计算

触发 BFC

  • 根元素
  • float 不为 none
  • position 是 absolute 货 fixed
  • display 是 inline-block 或 table-cell 或 table-caption 或 inline-flex
  • overflow 不是 visible

示例一: 防止垂直 margin 重叠

<style>
    p {
    color: #f66;
    background: #fcc;
    width: 200px;
    line-height: 100px;
    text-align: center;
    margin: 40px;
    }
    .parent {
    overflow: hidden;
    }
</style>
<body>
    <p>AAA</p>
    <div class="parent">
        <p>BBB</p>
    </div>
</body>

布局规则第二条: Box 垂直方向的距离由 margin 决定。属于同一个 BFC 的两个相邻 Box 的 margin 会发生重叠

示例二: 清除内部浮动

<style>
    .parent {
        overflow: hidden;
        width: 200px;
    }
    .child {
        width: 100px;
        height: 100px;
        float: left
    }
</style>
<body>
    <div class="parent">
        <div class="child"></div>
        <div class="child"></div>
    </div>
</body>

布局规则第六条:计算 BFC 的高度时,浮动元素也参与计算

示例三: float 两栏布局

<style>
    body {
        width: 300px;
        position: relative;
    }

    .aside {
        width: 100px;
        height: 150px;
        float: left;
        background: #f66;
    }

    .main {
        height: 200px;
        background: #fcc;
    }
</style>
<body>
    <div class="aside"></div>
    <div class="main"></div>
</body>

布局规则第四条:BFC 的区域不会与 float box 重叠。

相关文章

  • 关于 BFC 的布局应用:清除浮动、文字环绕

    关于 BFC 的布局应用:清除浮动、文字环绕 参考文档:理解CSS中BFC BFC(Block Formattin...

  • BFC

    一、BFC是什么 BFC(box formatting context),要了解BFC是什么需要先理解box和fo...

  • BFC理解

    Block formatting context (块级格式化上下文) 页面文档由块block构成 每个block...

  • 理解BFC

    一、常见定位方案 在讲 BFC 之前,我们先来了解一下常见的定位方案,定位方案是控制元素的布局,有三种常见方案: ...

  • 理解BFC

    原文连接:https://zhuanlan.zhihu.com/p/25321647 一、常见定位方案 在讲 BF...

  • 理解BFC

    BFC 的全称是 Block Formating Context,译为“块级格式化上下文”,是 CSS 规范中的一...

  • 理解BFC

    BFC全称 Block Formatting Context,是web上一种css的渲染方式,能够让浮动和其他元素...

  • 理解BFC

    BOX CSS布局的基本单位, 一个页面是由很多个 Box 组成的,元素的类型和 display 属性决定了这个 ...

  • 理解BFC

    理解BFC 更好阅读体验移步:http://zhangzippo.github.io/posts/2019/04/...

  • 理解BFC

    BFC(Block Formatting Context)块级格式化上下文BFC是一个名词,是一个独立的布局环境,...

网友评论

      本文标题:理解BFC

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