【谈谈你对BFC的理解】

简介: 【谈谈你对BFC的理解】

定义:

BFC就是一个块级容器,它会隔离外部,让盒子里面的元素不影响外面的元素,也就是在搭建页面的时候,不影响外面的布局。

为什么要知道BFC?

因为在页面的时候可能会发现,为什么会高度塌陷,为什么边距不是我想要的等系列问题

当内部元素使用浮动的时候,外面盒子计算不到高度,就会导致高度塌陷

4b56b0f7804747a8ab18a1008934849a.png

如果两个块级盒子都设置了margin值,两个盒子相邻的那一边的maragin会重叠,比如第一个盒子设置margin:10px,第二个盒子设置为20px,他们之间的边距不是30px,而是20px,那么这时候我们就需要使用BFC来解决这些问题

12701bf2062240dba5f0f4055bd214f0.png

BFC特性

1、属于同一个BFC的两个相邻容器的上下margin会重叠(重点)

2、计算BFC高度时浮动元素也参于计算(重点)

3、BFC的区域不会与浮动容器发生重叠(重点)

4、BFC内的容器在垂直方向依次排列

5、元素的margin-left与其包含块的border-left相接触

6、BFC是独立容器,容器内部元素不会影响容器外部元素

BFC可以解决的问题

解决边距重叠的问题【正正取大值,正负取相加,负负取小值】

解决高度塌陷的问题

解决相邻盒子浮动区域重叠的问题

BFC常用功能总结

可以利用BFC解决两个相邻元素的上下margin的重叠问题

可以利用BFC解决高度塌陷的问题

可以利用BFC实现多栏布局

相关文章
|
SQL XML 关系型数据库
Mybatis-Plus通过SQL注入器实现真正的批量插入
Mybatis-Plus通过SQL注入器实现真正的批量插入
8361 0
Mybatis-Plus通过SQL注入器实现真正的批量插入
|
数据库连接 API C#
WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(二)(下)
WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(二)(下)
526 0
|
SQL 存储 调度
基于 Flink 进行增量批计算的探索与实践
基于 Flink 进行增量批计算的探索与实践
406 1
基于 Flink 进行增量批计算的探索与实践
|
算法 Java 索引
【kmp算法】原理以及代码实现
【kmp算法】原理以及代码实现
859 0
|
程序员 网络安全 开发工具
Git还能这样玩?居然被他玩出了新花样
Git还能这样玩?居然被他玩出了新花样
391 1
|
数据可视化 算法
MATLAB Simulink 三相整流电路性能研究
MATLAB Simulink 三相整流电路性能研究
398 1
|
SQL API 调度
Springboot2.4.5集成Quartz实现动态任务数据持久化-不怕重启服务
Springboot2.4.5集成Quartz实现动态任务数据持久化-不怕重启服务
1556 0
|
开发工具 Android开发 git
Android自定义View——可以设置最大宽高的FrameLayout
Android自定义View——可以设置最大宽高的FrameLayout
817 0
|
安全 前端开发 关系型数据库
PHP:ThinkPHP5.0下载安装和各种配置
PHP:ThinkPHP5.0下载安装和各种配置
1344 0
|
存储 Java 关系型数据库
分布式定时任务框架Quartz总结和实践(2)—持久化到Mysql数据库
本文主要介绍分布式定时任务框架Quartz集成SpringBoot持久化数据到Mysql数据库的操作,上一篇文章使用Quartz创建定时任务都是保存在内存中,如果服务重启定时任务就会失效,所以Quartz官方也提供将定时任务等信息持久化到Mysql数据库的功能,本文主要实现这种Quartz的这种使用方式。
2398 0
分布式定时任务框架Quartz总结和实践(2)—持久化到Mysql数据库