(37) BFC IFC GFC FFC概念

一、什么是FC?

Formatting Contexts,是W3C CSS2.1规范中的一个概念。它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。

二、BFC块级格式化上下文

1.BFC布局规则

  • 内部的盒子会在垂直方向,一个个地放置。
  • 盒子垂直方向的距离由margin决定,属于同一个BFC的两个相邻Box的上下margin会发生重叠。
  • 每个元素的左边,与包含的盒子的左边相接触,即使存在浮动也是如此。
  • BFC的区域不会与float重叠。
  • BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之也如此。
  • 计算BFC的高度时,浮动元素也参与计算。

2.产生BFC的方式

  • 根元素。
  • float的属性不为none。
  • position为absolute或fixed。
  • display为inline-block,table-cell,table-caption,flex。
  • overflow不为visible。

三、IFC行内格式化上下文

IFC的line box(线框)高度由其包含行内元素中最高的实际高度计算而来(不受到竖直方向的padding/margin影响)

IFC中的line box 一般左右都贴紧整个IFC,但是会因为float元素而扰乱。float元素会位于IFC与line box之间,使得line box宽度缩短。同个IFC下的多个line box高度会不同。IFC中是不可能有块级元素的,当插入块级元素时(如p中插入div)会产生两个匿名块与div分隔开,即产生两个IFC,每个IFC对外表现为块级元素,与div垂直排列。

水平居中:当一个块要在环境中水平居中时,设置其为inline-block则会再外层产生IFC,通过text-align则可以使其水平居中。

垂直居中:创建一个IFC,用其中一个元素撑开父元素的高度,然后设置其vertical-align:middle,其他行内元素则可以在此父元素下垂直居中。

四、GFC网格布局格式化上下文

GridLayout Formatting Contexts,当为一个元素设置display值为grid的时候,此元素将会获得一个独立的渲染区域,我们可以通过在网络容器上定义网格定义行和网格定义列属性在网格项目上定义网格行和网格列为每一个项目定义位置和空间。

那么GFC有什么用呢,和table又有什么区别呢?首先同样是一个二维的表格但GridLayout会有更加丰富的属性来控制行列,控制对齐以及更为精细的渲染语义和控制。

五、FFC自适应格式化上下文

Flex Formatting Contexts,display值为flex或者inline-flex的元素将会生成自适应容器,多用于移动端。

Flex Box由伸缩容器和伸缩项目组成。通过设置元素的display属性为flex或inline-flex可以得到一个伸缩容器。设置为flex的容器被渲染为一个块级元素,而设置为inline-flex的容器则渲染为一个行内元素。

伸缩容器中的每一个子元素都是一个伸缩项目。伸缩项目可以是任意数量的。伸缩容器外和伸缩项目内的一切元素都不受影响。简单地说,Flexbox定义了伸缩容器内伸缩项目该如何布局。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
前端开发中,BFCIFCGFCFFC 是指不同的 CSS 布局上下文,它们分别代表: 1. BFC(块级格式化上下文):是一个独立的块级渲染区域,具有一定的布局规则,内部的块级元素会按照一定的规则进行排列。BFC 的特点是内部的盒子会在垂直方向上一个接一个地放置,同一行的盒子在水平方向上也有一定的间隔。常见的触发 BFC 的方式包括设置元素的 overflow 属性(除了 visible 以外的值)、float 属性、position 属性(除了 static 以外的值)、display 属性为 table-cell、table-caption 或 inline-block 等。 2. IFC(内联格式化上下文):是一块内联元素的渲染区域,内部的内联元素会按照一定的规则进行排列。IFC 的特点是内部的内联盒子在垂直方向上一个接一个地放置,同一行的盒子紧贴在一起。常见的触发 IFC 的方式包括设置元素的 display 属性为 inline-block、inline-table 或 flex 等。 3. GFC(网格格式化上下文):是一个独立的网格渲染区域,内部的网格元素会按照一定的规则进行排列。GFC 通常用于实现复杂的网格布局,它的特点是能够自动适应不同大小的元素,并支持单元格合并等高级特性。常见的触发 GFC 的方式包括设置元素的 display 属性为 grid。 4. FFC(自适应格式化上下文):是一个渲染区域,内部元素会根据可用的空间自动进行排列和缩放。FFC 的特点是可以实现类似于图像的自适应缩放效果,通常用于实现响应式布局。常见的触发 FFC 的方式包括设置元素的 display 属性为 flex 或 inline-flex。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泽哥ins

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值