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

BFC(块级格式化上下文)

作者: 朴客 | 来源:发表于2020-06-26 16:02 被阅读0次

BFC它是一个独立的渲染区域,只有Block-level box参与,它规定了内部的Block-Box如何布局,并且与这个区域毫不相干。

元素的显示模式

我们前面讲过 元素的显示模式 display。

分为 块级元素 行内元素 行内块元素 ,其实,它还有很多其他显示模式。


哪些元素会具有BFC的条件

不是所有的元素模式都能产生BFC,w3c 规范:

display 属性为 block, list-item, table 的元素,会产生BFC.

什么情况下可以让元素产生BFC

要给这些元素添加如下属性就可以触发BFC。

-float属性不为none

-position为absolute或fixed

-display为inline-block, table-cell, table-caption, flex, inline-flex

-overflow不为visible。

BFC元素所具有的特性

BFC布局规则特性:

1.在BFC中,盒子从顶端开始垂直地一个接一个地排列.

2.盒子垂直方向的距离由margin决定。属于同一个BFC的两个相邻盒子的margin会发生重叠

3.在BFC中,每一个盒子的左外边缘(margin-left)会触碰到容器的左边缘(border-left)(对于从右到左的格式来说,则触碰到右边缘)。

  1. BFC的区域不会与浮动盒子产生交集,而是紧贴浮动边缘。
  2. 计算BFC的高度时,自然也会检测浮动或者定位的盒子高度。

BFC的主要用途

BFC能用来做什么?

(1) 清除元素内部浮动

只要把父元素设为BFC就可以清理子元素的浮动了,最常见的用法就是在父元素上设置overflow: hidden样式,对于IE6加上zoom:1就可以了。

(2) 解决外边距合并问题

外边距合并的问题。

(3) 制作右侧自适应的盒子问题

BFC 总结

BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。包括浮动,和外边距合并等等,因此,有了这个特性,我们布局的时候就不会出现意外情况了。

1.清除内部浮动

添加前


添加后


解决外边距合并

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>


    <style>
    .father  {
        width: 300px;
        height: 500px;
        border: 1px solid red;
        overflow: hidden;
    }

    .son1, .son2 {
        width: 100px;
        height: 100px;
        background-color: blue;
        
    }

    .over {
        overflow: hidden;
    }

    .son1 {
        margin-bottom: 50px;
    }

    .son2 {
        background-color: green;
        margin-top: 100px;
    }



</style>
<body>

    <section>
        <div class="father">
            <div class="over"> <!-- over隔开就不是同一个BFC -->
                <div class="son1"></div>
            </div>

            <div class="son2"></div>


        </div>
    </section>


    
</body>
</html>

制作右侧自适应盒子问题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>

    <style>
    .father {
        width: 400px;
        height: 500px;
        border: 1px solid #000;
        margin: 0 auto;
    }

    .box {
        width: 100px;
        height: 100px;
        background-color: red;
        float: left;
    }

    .txt {
        height: 300px;
        background-color: blue;
        overflow: hidden; /* 创建BFC,不再和浮动产生交集 */
    }

    </style>
</head>
<body>
        
        <div class="father">
            <div class="box"></div>
            <div class="txt">
                制作右侧自适应盒子问题制作右侧自适应盒子问题制作右侧自适应盒子问题
                制作右侧自适应盒子问题制作右侧自适应盒子问题制作右侧自适应盒子问题制作右侧自适应盒子问题
                制作右侧自适应盒子问题制作右侧自适应盒子问题制作右侧自适应盒子问题制作右侧自适应盒子问题
                制作右侧自适应盒子问题制作右侧自适应盒子问题制作右侧自适应盒子问题制作右侧自适应盒子问题

            </div>



        </div>

    
</body>
</html>

相关文章

  • css

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

  • BFC

    什么是 BFC Block Formatting Contexts(BFC):块级元素格式化上下文 BFC布局规则...

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

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

  • CSS知识点----BFC

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

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

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

  • BFC / IFC

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

  • 3分钟理解BFC

    BFC的简介 BFC(Block Formatting Context) 块级格式化上下文,是用于布局块级盒子的一...

  • BFC和IFC

    BFC 块级格式化上下文 哪些元素会生产BFC? IFC 行内格式化上下文

  • BFC属性

    BFC(Block formatting context)直译为"块级格式化上下文"。BFC它是指一个独立的块级渲...

  • BFC和IFC

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

网友评论

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

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