什么是BFC?

BFC

BFC全称:Block Formatting Context 块级格式上下文

BFC是页面中满足一些布局规则的独立区域,该区域内的布局规则不会影响外部的元素

常见的布局规则:

  • 普通流
    • 元素按照在页面中的先后顺序至上而下布局
    • 行内元素水平对齐,直到这一行被占满后自动转行
    • 每个块级元素占一个新行
    • html标签中所有元素都默认按照普通流的规则进行布局
  • 浮动
    • 浮动元素"漂浮"在其他元素上方,不占位置
    • 浮动分为left和right
    • 设置浮动后的元素会在父元素的宽度范围内,尽可能的向左或向右偏移,如果一行被占满,浮动元素会自动换行
  • 定位
    • static 默认
    • relative 相对元素自身的正常位置进行定位
    • fixed 相对视口定位
    • absolute 相对设置了position并且值不为static的元素进行定位
    • sticky 在relative和fixed之间切换,在页面滚动时是fixed定位,当符合top\bottom或者left\right的值时就变成relative定位

BFC特性:

  • 内部盒子会在垂直方向一个接一个放置
  • 这些盒子垂直方向的距离由margin决定
  • margin塌陷:属于同一个BFC区域中的两个相邻盒子的margin值会重叠

触发BFC的6种方式:

  1. 设置元素float并且值不为none
  2. 绝对定位position值为absolute或fixed
  3. display值为inline-block\table-cell\table-caption\table\table-row\table-row-group\table-header-group\table-footer-group\inline-table\flow-root\flex\inline-flex\grid\inline-grid
  4. overflow值不为visible的块级元素,为auto\scroll\hidden
  5. contain的值为layout\content\paint的元素
  6. body根元素

BFC的作用:

  1. 清除浮动
  • 给元素设置overflow:hidden来清除浮动
  • 不能使用position来清除浮动,这样会导致父级元素本身脱离文档流
  1. 解决margin塌陷
  • 给存在margin塌陷的两个盒子都设置overflow:hidden,将这两个盒子分开,分别放在两个不同的BFC区域中,就能解决margin值重叠的问题

IFC

  • 全称:Inline Formatting contexts 内联格式上下文

GFC

  • 全称:GrideLayout formatting contexts 网格布局格式化上下文
  • 将display设置为grid

FFC

  • 全称:Flex formatting contexts 自适应格式上下文
  • 将display设置为flex或inline-flex
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值