当前位置: 首页 > news >正文

BFC详解

1. 引言

在前端的布局手段中,一直有这么一个知识点,很多前端开发者都知道有它的存在,但是很多人也仅仅是知道它的存在而已,对它的作用也只是将将说得出来,可是却没办法说得非常的清晰。这个知识点,就是BFC。想要了解BFC的规则,前提必须是熟悉前端网页的多种布局手段,例如盒的显示模式display,三种布局手段标准流(normal)浮动流(float)定位流(position)等。你只有熟练掌握了这些布局手段之后,才能很好的理解BFC。今天这篇文章,来大家解析一下BFC,希望对各位新老朋友有所帮助。

2. 定义

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

A block formatting context contains everything inside of the element creating it that is not also inside a descendant element that creates a new block formatting context.

强行翻译一下吧,简单来说,这句话的意思就是:一个BFC区域包含创建该上下文元素的所有子元素,但是不包括创建了新的BFC的子元素的内部元素。

3. 触发BFC

并不是任意一个元素都可以被当做BFC,只有当这个元素满足以下任意一个条件的时候,这个元素才会被当做一个BFC。

触发BFC的条件

  • body根元素
  • 设置浮动,不包括none
  • 设置定位,absoulte或者fixed
  • 行内块显示模式,inline-block
  • 设置overflow,即hidden,auto,scroll
  • 表格单元格,table-cell
  • 弹性布局,flex

4. 总结

  • 一个BFC区域只包含其子元素,不包括其子元素的子元素.
  • 并不是所有的元素都能成为一块BFC区域,只有当这个元素满足条件的时候才会成为一块BFC区域
  • 不同的BFC区域之间是相互独立的,互不影响的。利用这个特性我们可以让不同BFC区域之间的布局不产生影响.
http://www.lryc.cn/news/39915.html

相关文章:

  • C++:哈希结构(内含unordered_set和unordered_map实现)
  • Java实现调用第三方相关接口(附详细思路)
  • 基础数据结构:单链表
  • 基于51单片机的智能计算器Protues仿真设计
  • Pandas数据分析实战练习
  • C++ 继承下(二篇文章学习继承所有知识点)
  • 【C++】C++11新特性——类的改进|lambda表达式
  • C语言进阶(37) | 程序环境和预处理
  • Golang每日一练(leetDay0005)
  • occt_modeling_data(一)——拓扑
  • 【AcWing】蓝桥杯备赛-深度优先搜索-dfs(3)
  • 宇宙最强-GPT-4 横空出世:最先进、更安全、更有用
  • HashMap的实际开发使用
  • OpenCV入门(十三)快速学会OpenCV 12 图像梯度
  • 软考:常见小题目计算题
  • 【Linux】进程的程序替换
  • 【C++】模板(上)
  • express框架利用formidable上传图片
  • 测试背锅侠?入职软件测试后大d佬给我丢了这个bug分类分析,至今受益匪浅......
  • STM32 OTA应用开发——通过内置DFU实现USB升级(方式1)
  • 基于MFC的JavaScript进行网页数据交互
  • AUTOSAR-Fee
  • Linux基本命令——操作演示
  • 【Linux】目录和文件的权限
  • Unity 优化之Player Setting
  • Qt——通过一个简单的程序例程熟悉使用Qt Creator软件进行项目搭建的基本流程(新建项目、项目的文件组成、修改ui文件、编译运行与调试)
  • Linux 如何使用 git | 新建仓库 | git 三板斧
  • 3.springcloud微服务架构搭建 之 《springboot自动装配ribbon》
  • 【一】进程到底是个啥?
  • [蓝桥杯] 双指针、BFS和DFS与图论问题