千家信息网

css中BFC有什么作用

发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,这篇文章主要介绍"css中BFC有什么作用",在日常操作中,相信很多人在css中BFC有什么作用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"css中BFC有什么作用"
千家信息网最后更新 2025年11月10日css中BFC有什么作用

这篇文章主要介绍"css中BFC有什么作用",在日常操作中,相信很多人在css中BFC有什么作用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"css中BFC有什么作用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

  什么是BFC(BlockFormattingContext)

  Formattingcontext(格式化上下文)是W3CCSS2.1规范中的一个概念。它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。

  而BlockFormattingContexts(BFC,块级格式化上下文),就是一个块级元素的渲染显示规则。具有BFC特性的元素可以看作是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素,并且BFC具有普通容器所没有的一些特性。

  BFC的布局规则如下:

    1.内部的盒子会在垂直方向,一个个地放置;

    2.BFC是页面上的一个隔离的独立容器;

    3.属于同一个BFC的两个相邻Box的上下margin会发生重叠;

    4.计算BFC的高度时,浮动元素也参与计算

    5.每个元素的左边,与包含的盒子的左边相接触,即使存在浮动也是如此;

    6.BFC的区域不会与float重叠;

  那么如何触发BFC呢?只要元素满足下面任一条件即可触发BFC特性:

  body根元素;

  浮动元素:float不为none的属性值;

  绝对定位元素:position(absolute、fixed)

  display为:inline-block、table-cells、flex

  overflow除了visible以外的值(hidden、auto、scroll)

  BFC到底有什么用呢?

  块格式化上下文对于定位与清除浮动很重要。定位和清除浮动的样式规则只适用于处于同一块格式化上下文内的元素。

  1、同一个BFC下外边距会发生折叠

  也就是说,两个相邻的普通流中的块元素垂直方向上的margin会折叠。

  

  

  

  

  

  这里两个p的外边距为100px,而不是200px。之所以发生外边距折叠,是因为他们同属于body这个根元素。

  利用BFC可以消除MarginCollapse

  BFC导致了margincollapse,而现在又要用它来解决margincllapse.但是始终要记住一点:只有当元素在同一个BFC中时,垂直方向上的margin才会clollpase.如果它们属于不同的BFC,则不会有margincollapse.因此我们可以再建立一个BFC去阻止margincollpase的发生。

  

  

  

  

  .wrap{

  overflow:hidden;

  }

  .p{

  width:200px;

  height:50px;

  margin:100px0;

  background-color:red;

  }

  2、BFC可以包含浮动的元素(清除浮动)

  正常情况下,浮动的元素会脱离普通文档流,使父元素高度坍塌。即外层的p会无法包含内部浮动的p。

  

  

  

  

  但如果我们触发外部容器的BFC,根据BFC规范中的第4条:计算BFC的高度时,浮动元素也参与计算,那么外部p容器就可以包裹着浮动元素。

  

  

  

  3、BFC可以阻止元素被浮动元素覆盖/(两栏布局)


到此,关于"css中BFC有什么作用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

很赞哦!
元素 浮动 容器 作用 上下 上下文 格式 规则 学习 定位 普通 两个 布局 方向 特性 高度 区域 更多 盒子 页面 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库 函数 存储过程 网络安全基础设置 贵阳出名的软件开发公司 众人互联网科技有限公司视频 小小橙软件开发 软件开发的工资有多高 政府网站网络安全交流发言 灰鸽子ftp服务器 副服务器 未管理状态 mfc 连接sql数据库 最先出现的生物数据库 网络安全服务系统代码 河北通讯软件开发服务价钱 数据库可以自己编程吗 邹平网络安全 有网缺无法连接服务器 数据库bak1文件怎么打开 庐阳区网络技术开发常见问题 5g网络技术难点 政府网络安全管理制度范本 软件开发的作用 Post做数据库增删改 腾讯网络安全挑战赛 stmp服务器 电脑表格里怎么隐藏数据库 张家界网络安全会议 留言本数据库代码 机架式服务器供应公司 网络技术答案一样没有给分 无线网络安全监管厂家报价
0