【对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目的是形成一个相对于外界完全独立的空间,让内部的子元素不会影响到外部的元素。


相关文章
|
29天前
|
前端开发 容器
CSS 中BFC是什么?
CSS 中BFC是什么?
27 1
|
9月前
|
前端开发 容器
BFC
准面试题,这里简洁阐述了,帮助快速复习、加深记忆
59 2
BFC
|
5月前
|
容器
BFC 是什么
BFC 是什么
29 0
|
10月前
|
前端开发 容器
浅谈BFC
浅谈BFC
55 1
|
9月前
|
前端开发 容器
CSS中的BFC是什么?
CSS中的BFC是什么?
58 0
|
10月前
|
前端开发
BFC是什么?怎么触发BFC?
BFC是“块级格式化上下文”的缩写,是一个独立的渲染区域,内部的元素按照一定规则进行布局,不会影响到外部元素的布局。BFC主要用于解决一些常见的布局问题,例如清除浮动、防止 margin 重叠等。
|
前端开发 JavaScript
了解BFC特性,轻松实现自适应布局
BFC(Block Formatting Context)俗称块级格式上下文,初次看到这词似乎有点不是很理解,通俗解释就是一个独立区域决定了内部元素的排放,以及内部元素与外部元素的相互作用关系
108 0
了解BFC特性,轻松实现自适应布局
|
前端开发 容器
浅谈BFC
大家好,我是 CoderBin,本文讲给大家分享 CSS 中关于 BFC 的相关内容,如果文中有任何不对的地方欢迎在评论区留言指正,如果对同学们有帮助的欢迎点赞收藏,你们的支持就是我最大的动力,谢谢🌻
110 1
浅谈BFC
|
前端开发
BFC 原理
首先我们了解下何为** BFC** bfc:Formatting context(格式化上下文) 是 W3C CSS2.1 规范中的一个概念。它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。