什么是BFC、IFC、GFC和FFC
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 定义了伸缩容器内伸缩项目该如何布局。

转载于:https://www.cnblogs.com/LChenglong/p/9466847.html

【转】前端的BFC、IFC、GFC和FFC相关推荐

  1. css3中的BFC,IFC,GFC和FFC(转载)

    作者原文网址:http://www.cnblogs.com/dingyufenglian/p/4845477.html   What's FC? 一定不是KFC,FC的全称是:Formatting C ...

  2. (37) BFC IFC GFC FFC概念

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

  3. BFC/IFC/GFC/FFC分别是什么?

    BFC

  4. css----BFC,IFC,GFC,FFC的区别

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

  5. 【重识前端】什么是BFC、IFC、GFC 和 FFC

    最近在写[重拾前端]系列,下面有几个快速通道,大家自取 [重识前端]原型/原型链和继承 [重识前端]闭包与模块 [重识前端]全面攻破this [重识前端]一次搞定JavaScript的执行机制 [重识 ...

  6. 学前端的你了解这些知识吗?——BFC、IFC、GFC、FFC

    BFC.IFC.GFC 和 FFC 前言 想要了解BFC.IFC.GFC.FFC,就必须先要了解FC. FC的全称是:Formatting Contexts(格式化上下文),它是W3C规范中的一个概念 ...

  7. CSS——FC(BFC/IFC/FFC/GFC)超详细版+原理案例分析

    文章目录 一.Box 二.包含块 2.1 确定一个元素的包含块 2.2 EXAMPLE 三.FC(Formatting Context) 四.BFC 1. BFC的形成条件 2. BFC的布局规则 3 ...

  8. BFC、IFC、GFC、FFC

    BFC.IFC.GFC.FFC CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC. 那么到底什么是BFC.IFC.GFC和FFC呢? What's FC? 一定不是KFC,FC的全称是 ...

  9. BFC、IFC、GFC、FFC概念理解、布局规则、形成方法、用处浅析

    接着聊一下BFC.IFC,与FFC.GFC,GFC是一种二维度的布局方式,现在也蛮火,但是因为兼容性问题比较大,现在用的不多.其实这些布局方式经常会遇到,主要是想了解一下相关的各种概念和术语. 想要理 ...

最新文章

  1. json对象(json-lib)转换成list-map集合
  2. ASp.net 剖析三层架构
  3. 激光扫描仪的扫描方式
  4. 计算机电路逻辑分析基础知识答案,计算机电路基础学习指导与习题解答
  5. WebClient UI create a hidden form and submit
  6. MyBatis(延迟加载 缓存)
  7. 数学发展重在人才,丘成桐鼓励年轻学子“无法无天”
  8. Collection的使用 字符串保存 java
  9. .net core 获取机器码_.NET Core 反射获取所有控制器及方法上特定标签
  10. 6岁会编程,14岁就被麻省理工录取,神童谎言是如何诞生的?
  11. 空间数据挖掘主要方法
  12. linux进程管理实验视频,Linux进程管理实验
  13. python如何使用图片做背景_如何在python pptx中设置背景图像
  14. 【Python】Base64编码和解码
  15. 机器学习实战(4)——训练模型
  16. poj2391 Ombrophobic Bovines 拆点连边要注意
  17. 使用 MyBatis 的 Maven 插件生成代码
  18. js 压缩html 图片上传,js canvas 前端实现修改图片尺寸压缩图片大小
  19. 使用Java将Word文档转PDF
  20. android滴滴开源,DoKit - 滴滴开源的一款功能齐全的客户端( iOS 、Android )研发助手...

热门文章

  1. 正则表达式过滤文本,replace的使用
  2. TF2 keras Tensoboard学习总结
  3. TensorFlow入门--张量的定义与基本运算
  4. C++/C--删除string末尾字符的方法【转载】
  5. 分解质因数(优中再优化)
  6. 【编撰】linux IPC 001 - 概述
  7. linux pae内核安装,Linux 安装PAE内核
  8. 交叉编译docker_端侧推理引擎Tengine初识:安卓平台交叉编译并跑通MobileNetV1
  9. maven版本_Maven – 工作原理
  10. 张鑫 css,元素有高度 但是css设置背景色不显示