WEB前端之BFC问题:面试经典知识

WEB前端之BFC问题:面试经典知识

官方文档:块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视化CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。
可以简单的理解为块盒子与其它同级块盒子之间的区域。
如图:两个div标签之间的空白区域
两个div
当我们设置div样式为

        div{
            height: 200px;
            width: 200px;
            background: lightpink;
            margin: 20px;
        }

查看两个div之间的区域的高度
查看两个div之间的距离
两个div之间区域的高度不是我们想的40px,而是20px。为什么会发生高度坍塌呢?这就是BFC的特性。(规则第一、二条)

BFC布局规则:

  1. 内部的Box会在垂直方向一个接着一个地放置。
  2. Box垂直方向上的距离由margin决定。属于同一个BFC的两个相邻的Box的margin会发生重叠。
  3. 每个盒子的左外边框紧挨着包含块的左边框,即使浮动元素也是如此。
    BFC的区域不会与float box重叠。
  4. BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然。
  5. 计算BFC的高度时,浮动子元素也参与计算。

解决方案:

一.

		/*(本人推荐,该方法灵活)*/
        body{
            display: flex;
            flex-direction: column;
        }
        div{
            height: 200px;
            width: 200px;
            background: lightpink;
            margin: 20px;
        }

将该块盒子的父级转化为弹性盒子。由flex来控制该盒子的属性。效果:
用flex控制后的div
二.

        div{
            height: 200px;
            width: 200px;
            background: lightpink;
            margin: 20px;
            float:left;
        }

给该盒子添加float:left。效果:
float:left
结束语:若有错误请各位指出,有意交流请加微信:15019763969

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值