美文网首页
什么是BFC、IFC、GFC和FFC

什么是BFC、IFC、GFC和FFC

作者: 卷村队队员 | 来源:发表于2019-02-28 17:50 被阅读0次

CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC。

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

1、BFC*

BFC(Block Formatting Contexts)直译为"块级格式化上下文"。Block Formatting Contexts就是页面上的一个隔离的渲染区域,容器里面的子元素不会在布局上影响到外面的元素,反之也是如此。如何产生BFC?

float的值不为none。 

overflow的值不为visible。 

position的值不为relative和static。

display的值为table-cell, table-caption, inline-block中的任何一个。 

那BFC一般有什么用呢?比如常见的多栏布局,结合块级别元素浮动,里面的元素则是在一个相对隔离的环境里运行。

2、IFC

IFC(Inline Formatting Contexts)直译为"内联格式化上下文",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垂直排列。

那么IFC一般有什么用呢?

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

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

3、GFC(css3)

GFC(GridLayout Formatting Contexts)直译为"网格布局格式化上下文",当为一个元素设置display值为grid的时候,此元素将会获得一个独立的渲染区域,我们可以通过在网格容器(grid container)上定义网格定义行(grid definition rows)和网格定义列(grid definition columns)属性各在网格项目(grid item)上定义网格行(grid row)和网格列(grid columns)为每一个网格项目(grid item)定义位置和空间。 

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

4、FFC(css3)

FFC(Flex Formatting Contexts)直译为"自适应格式化上下文",display值为flex或者inline-flex的元素将会生成自适应容器(flex container),可惜这个牛逼的属性只有谷歌和火狐支持,不过在移动端也足够了,至少safari和chrome还是OK的,毕竟这俩在移动端才是王道。

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

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

相关文章

  • 前端面试基础题

    BFC、IFC、GFC、FFC CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC。 到底什么是BF...

  • 什么是css的BFC、IFC、FFC and GFC

    什么是css的BFC、IFC、FFC and GFC 先说一下什么是FC FC:Formatting Contex...

  • BFC、IFC、GFC和FFC

    CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC。 FC 全称是:Formatting Conte...

  • 什么是BFC、IFC、GFC和FFC

    CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC。 FC的全称是:Formatting Conte...

  • BFC,IFC,GFC和FFC?

    初看到css的这几个名词的时候觉得很神奇,用了这么久的css了竟然还有这么高深,这么神奇的概念。然后搜了一...

  • BFC、IFC、GFC 和 FFC

    BFC(Block formatting contexts) 块级格式上下文 Block Formatting C...

  • BFC、IFC、GFC、FFC

    几个概念,与相关需要挖掘细节的地方。另外再来几个布局的实例。 格式化上下文 和 盒子 算是 CSS 里最细节的概念...

  • BFC、IFC、GFC、FFC

    ……什么是BFC?完全没听过! 一.什么是BFC(和其他) BFC全称是Block Formatting Cont...

  • BFC IFC GFC FFC

    BFCBFC(Block Formatting Contexts)意为“块级格式化上下文”。就是页面上的一个渲染区...

  • BFC IFC GFC FFC

    BFC: 块级格式上下文 触发BFC的元素有float、position、oveflow、display:tabl...

网友评论

      本文标题:什么是BFC、IFC、GFC和FFC

      本文链接:https://www.haomeiwen.com/subject/jerdeqtx.html