理解BFC

2023-12-18  本文已影响0人  扫地僧练级

定义

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

布局规则

触发 BFC

示例一: 防止垂直 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 重叠。

上一篇 下一篇

猜你喜欢

热点阅读