CSS中的BFC是什么?

一、什么是BFC?

BFC(Block Formatting Context)块格式化上下文,简单来说就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。

二、如何触发BFC?

我们经常在写CSS时不知不觉就会触发了BFC:

  • 根元素,即HTML元素
  • 浮动元素:元素的float不是none,指定float为left或者right就可以创建BFC
  • 绝对定位元素:元素的position为absolute或fixed
  • display:inline-block、table-cell、flex、inline-flex
  • overflow指定除了visible的值

三、BFC有什么特点?

  • 在BFC中,块级元素从顶端开始垂直地一个接一个的排列。(当然了,即便不在BFC里块级元素也会垂直排列)
  • 如果两个块级元素属于同一个BFC,它们的上下margin会重叠(或者说折叠),以较大的为准。但是如果两个块级元素分别在不同的BFC中,它们的上下边距就不会重叠了,而是两者之和。
  • BFC的区域不会与浮动的元素区域重叠,也就是说不会与浮动盒子产生交集,而是紧贴浮动边缘。
  • 计算BFC的高度时,浮动元素也参与计算。BFC可以包含浮动元素。(利用这个特性可以清除浮动)
  • BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。

四、BFC有什么用?

1、解决外边距折叠问题

可以把其中一个div放到BFC中,添加overflow: hidden;开启BFC

2、制作两栏布局

左边固定,右边自适应------> 给右边的div添加overflow: hidden;开启BFC

3、清除元素内部的浮动

当在父元素中只设定一个盒子浮动,另一个不浮动时,会造成第二个盒子在第一个盒子的下方,被覆盖掉一部分

给第二个元素设置BFC:overflow: hidden;

原文链接:https://blog.csdn.net/weixin_43974265/article/details/115416184

相关推荐
Rsun0455131 分钟前
React相关面试题
前端·react.js·前端框架
鹏多多.1 小时前
Flutter使用screenshot进行截屏和截长图以及分享保存的全流程指南
android·前端·flutter·ios·前端框架
LawrenceLan1 小时前
37.Flutter 零基础入门(三十七):SnackBar 与提示信息 —— 页面反馈与用户交互必学
开发语言·前端·flutter·dart
怪侠_岭南一只猿1 小时前
爬虫工程师入门阶段一:基础知识点完全学习文档
css·爬虫·python·学习·html
迪巴拉15251 小时前
基于Vue与Spring Boot+Open Cv的智慧校园考勤系统
前端·vue.js·spring boot
swipe1 小时前
JavaScript 对象与属性描述符:从原理到实战
前端·javascript·面试
&活在当下&1 小时前
Vue3 h函数用法详解
前端·javascript·vue.js
小贵子的博客2 小时前
(vue3错误处理)has naming conflicts with other components, ignored.
前端·javascript·vue.js