文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

css中BFC有什么作用

2024-04-02 19:55

关注

这篇文章主要介绍“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会折叠。

  <style>

  .p{

  width:200px;

  height:50px;

  margin:100px0;

  background-color:red;

  }

  </style>

  <body>

  <divclass="p"></div>

  <divclass="p"></div>

  </body>

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

  利用BFC可以消除MarginCollapse

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

  <divclass="p"></div>

  <divclass="wrap">

  <divclass="p"></div>

  </div>

  .wrap{

  overflow:hidden;

  }

  .p{

  width:200px;

  height:50px;

  margin:100px0;

  background-color:red;

  }

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

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

  <divstyle="border:1pxsolid#000;">

  <divstyle="width:50px;height:50px;background:#eee;float:left;">

  </div>

  </div>

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

  <divstyle="border:1pxsolid#000;overflow:hidden">

  <divstyle="width:100px;height:100px;background:#eee;float:left;"></div>

  </div>

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

css中BFC有什么作用

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯