【对BFC的详解】

简介: 【对BFC的详解】

在了解BFC(Block Formatting Context)之前,我们先来看看FC(Formatting Context)

之前从w3c网记住了几个特性:

  • 所有的盒子都属于一个FC。
  • 块级元素的布局属于一个BFC,块格式化上下,文包含创建它的,元素内部的,所有内容 。例如div标签/段落p标签/h1等 > BFC布局中。
  • 行内级元素的布局属于一个IFC。例如 img 图片标签/A链接/SPAN标签 / B标签 -> IFC布局中
  • 简单理解:块级元素所在的布局和上下文就是BFC,行内级元素所在的布局和上下文就是IFC。
    那么很多人听到这会有疑问,块级元素都是在BFC中布局的,那么这个BFC在哪里呢
    1.根元素(html会创建BFC)
    2.浮动元素(元素的float值不是none)
    3.绝对定位元素(position为absolute绝对定位)
    4.行内块元素(元素的display为inline-block)
    5.表格单元格(元素的display为table-cell,HTML表格单元格默认为该值,表格标题(元素的display为table-caption,HTML表格标题默认为该值)row,tbody,thead,tfoot的默认属性)或inline-table)
    6.overflow计算值(Computed)不为visible的块元素
    7.弹性元素(display为flex或inline-flex元素的直接子元素)
    8.网格元素(display为grid或inline-grid元素的直接子元素)
    9.display值为flow-root的元素**
    BFC的作用:
    也就是在一个BFC的盒子,会从所在的盒子块的最顶部开始,在盒子的垂直方向上一个挨一个的摆放咱们写的标签,我们平常不太会注意这点,感觉这是没写样式,堆积的现象是正常的,但这却是BFC帮助我们实现的。
    当我们对某个盒子设置一个margin-top的时候,BFC会帮助我们解析,然后会在盒子布局时候给一个上边距,在一个BFC中,每个元素的左边缘都会紧贴着当前块的左边缘。这都是BFC的影响。
    创建 BFC 就像给元素加了一层隔离带一样。在 BFC 内部的块级元素,仍然遵守一样的摆放规则,但是里面的标签元素没办法超出自己所属的 BFC 容器,也就是某一个BFC里面的元素,被外面的BFC容器禁锢着,对外面的标签来说,这个创建了 BFC 的元素,和盒子里面的所有的子元素,都被当成了一个唯一独立的个体对待。 两者互不相干。
    基于 BFC 这种“隔离带的”特性,一般用来做以下两件事:
    1.用来实现清除浮动。比如一个大的div元素内想要浮动一下子元素,但是导致高度塌陷,可以给这个元素添加 overflow:hidden。 可以实现包裹浮动子元素。(因为创建了 BFC,不允许块级内部超出自己的边界)。
    2.阻止父子元素外边距折叠,父子块级元素如果没有设置边框和padding外边距,外边距会产生折叠。给父元素添加 overflow:hidden 后会阻止父子元素外边距折叠。
    在我们日常写代码的过程中可能不会去考虑什么是BFC,但是事实上就创建了一个BFC。
    理解 BFC 的这一特性也能让我们简化 CSS 的写法,给我们在编写页面布局的时候带来一定影响。
    总结一下:
    ,只有当这个元素满足条件的时候才会成为一块BFC区域。不同的BFC区域之间是相互独立的,互不影响的。BFC目的是形成一个相对于外界完全独立的空间,让内部的子元素不会影响到外部的元素。


相关文章
|
1月前
|
前端开发 开发者 容器
BFC 及其应用详解
BFC(Block Format Context),即块级格式化上下文,是CSS中一种重要的布局方式,它能够解决浮动元素带来的问题,如元素塌陷等。通过触发BFC,可以将元素布局限制在一个独立的容器内,避免与外部元素相互影响。适用于需要对元素进行精确控制的场景。
|
6天前
|
前端开发
什么是BFC?
【10月更文挑战第27天】BFC是CSS中一个非常重要的概念,它对于理解和掌握页面布局以及解决一些常见的布局问题都有着重要的作用,通过合理地创建和利用BFC,可以实现更加灵活和稳定的页面布局。
|
1月前
|
存储 JavaScript 前端开发
BFC 及其应用
重绘与回流是网页渲染过程中关键环节:重绘涉及更新元素视觉属性如颜色、背景等变化而不改变布局的情况;回流则是在元素大小、位置或布局发生变化时重新计算和更新整个页面布局的过程。为提升性能,应尽量减少强制同步的重绘和回流,采用CSS层叠、使用RAF(requestAnimationFrame)代替setTimeout和setInterval,将动画移至独立容器或使用GPU加速等方式优化。
|
前端开发 容器
BFC
准面试题,这里简洁阐述了,帮助快速复习、加深记忆
93 2
BFC
|
6月前
|
容器
BFC 是什么
BFC 是什么
65 0
|
前端开发 容器
浅谈BFC
浅谈BFC
76 1
|
前端开发 容器
CSS中的BFC是什么?
CSS中的BFC是什么?
85 0
|
前端开发
BFC是什么?怎么触发BFC?
BFC是“块级格式化上下文”的缩写,是一个独立的渲染区域,内部的元素按照一定规则进行布局,不会影响到外部元素的布局。BFC主要用于解决一些常见的布局问题,例如清除浮动、防止 margin 重叠等。
|
前端开发 容器
浅谈BFC
大家好,我是 CoderBin,本文讲给大家分享 CSS 中关于 BFC 的相关内容,如果文中有任何不对的地方欢迎在评论区留言指正,如果对同学们有帮助的欢迎点赞收藏,你们的支持就是我最大的动力,谢谢🌻
132 1
浅谈BFC