小聊BFC

“不起眼”的BFC

BFC这个词可能之前没怎么听过,可是稍微接触过前端的人都知道css中有点小坑!!!!
今天想要跟大家分享一下个人对于BFC的一个理解。如有不足或理解错误的地方,还望各位大佬指出,哈哈,感激感激。要是喜欢的话,也不妨点个赞啊。


*1.BFC 的定义:

* **BFC** (**Block fomatting context**):是一个独立的渲染区域,只有块级元素参与,规定了内部的块级元素如何布局,并与区域外部的毫不相干。

*2.BFC 的创建:

  • overflow 的值不为visible

  • float 的值不为none

  • position 的值不为static
  • display 的值为inline-block、table-cell、table-caption(因为table会默认生成一个匿名的table-cell,而table-cell又会生成BFC)

*3.BFC应用

  • 元素垂直方向上下重叠(margin大的值会覆盖小的值,而不是两值之和)

    .box p {
      margin: 10px 0;
      background-color: yellow;
    }
    .box p:nth-child(1) {
      margin-bottom: 25px;
    }

    效果如下:

    clipboard.png

    解决方法:

    <div class="box" id="box">
        <p>Lorem ipsum dolor sit.</p>
        <div style="overflow:hidden;">
            <p>Lorem ipsum dolor sit.</p>
        </div>
        <p>Lorem ipsum dolor sit.</p>
      </div>

    效果如下:

    clipboard.png

  • 解决侵占浮动元素的问题

      .one {
      width: 100px;
      height: 100px;
      background-color: pink;
    }
    .two {
      height: 100px;
      background-color: red;
      width: 100px;
    }

    效果图:

    clipboard.png

    解决方法:

    .one {
      float: left;
      width: 100px;
      height: 100px;
      background-color: pink;
    }
    .two {
      height: 100px;
      background-color: red;
      float: left;
      width: 100px;
    }

    效果图:

    clipboard.png


总而言之,BFC就是利用一个块级元素,让里面的元素不受外部元素的影响。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值