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

What's FC?
一定不是KFC,FC的全称是:Formatting Contexts,是W3C CSS2.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一般有什么用呢?比如常见的多栏布局,结合块级别元素浮动,里面的元素则是在一个相对隔离的环境里运行。

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,其他行内元素则可以在此父元素下垂直居中。

GFC
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会有更加丰富的属性来控制行列,控制对齐以及更为精细的渲染语义和控制。

FFC
FFC(Flex Formatting Contexts)直译为"自适应格式化上下文",display值为flex或者inline-flex的元素将会生成自适应容器(flex container),可惜这个牛逼的属性只有谷歌和火狐支持,不过在移动端也足够了,至少safari和chrome还是OK的,毕竟这俩在移动端才是王道。
Flex Box 由伸缩容器和伸缩项目组成。通过设置元素的 display 属性为 flex 或 inline-flex 可以得到一个伸缩容器。设置为 flex 的容器被渲染为一个块级元素,而设置为 inline-flex 的容器则渲染为一个行内元素。
伸缩容器中的每一个子元素都是一个伸缩项目。伸缩项目可以是任意数量的。伸缩容器外和伸缩项目内的一切元素都不受影响。简单地说,Flexbox 定义了伸缩容器内伸缩项目该如何布局。

css3之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

    什么是BFC.IFC.GFC和FFC CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC. FC的全称是:Formatting Contexts,是W3C CSS2.1规范中的一个概念. ...

  6. BFC、IFC、GFC、FFC

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

  7. BFC到底是什么?IFC、GFC、FFC?

    1.BFC的定义 我们常说的文档流分为普通流.浮动流与定位流三种. FC(formatting context格式化上下文),指的是一块渲染区域,依靠渲染规则,决定其子元素如何布局及与其他元素的关系和 ...

  8. BFC、IFC、GFC 和 FFC

    CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC. BFC BFC(Block Formatting Contexts)直译为"块级格式化上下文".Block Fo ...

  9. 什么是BFC、IFC、GFC、FFC?

    首先要知道:BFC和IFC出现在CSS2.1中,直到CSS3中才有GFC和FFC. FC是什么? FC的全称是:Formatting Contexts,是W3C CSS2.1规范中的一个概念.它是页面 ...

最新文章

  1. FEC(Forward Error Correction)前向纠错 UDP\RTP 中使用用于改善无线等网络丢包等问题--转...
  2. php 不可以连接远程mysql数据库
  3. Mybatis XML文件的异常
  4. 友盟-上传开发发布证书
  5. html显示elasticsearch,ElasticSearch查询:高亮显示(10)
  6. boost::safe_numerics::automatic相关的测试程序
  7. (收藏)[Unix] vi基本操作方法
  8. python3安装json库-python库json快速入门
  9. java中怎样创建线程_java中的线程创建和使用
  10. Linux CAT与ECHO命令详解 <<EOF EOF
  11. 管鲍计算机教室管理系统,管鲍多媒体电子教室
  12. 计算机启动dos,开机怎么进入dos_开机怎么进入dos界面
  13. 记录百度点击登录无响应及百度搜索显示异常
  14. SCAFFOLD: Stochastic Controlled Averaging for Federated Learning
  15. python基础学习的书籍
  16. 4个最好的PDF搜索引擎
  17. 工业物联网体系架构概述及基于工业物联网的智能制造
  18. C语言的冒泡排序优化及鸡尾酒排序问题分解知识点
  19. 如何从短信链接打开跳转到微信App内
  20. 长安大学计算机考研资料汇总

热门文章

  1. Mixly for Mac米思齐安装过程遇到的问题(已解决)
  2. 为什么女性朋友容易患上拇外翻?
  3. 台风下雨天出行要注意 穿鞋不当危害足部健康
  4. ISO 14443 非接触式射频卡标准学习
  5. 一文带你了解200G DAC高速线缆
  6. oracle 朱志辉_甲骨文(Oracle)授权教育中心落户我校
  7. TimerTask.cancel() 与 Timer.cancel() 的区别
  8. 关于调节ijkPlayer的音量和静音
  9. python做工控机_工控机折腾小记
  10. 基于 Amazon Amplify 构建自己的首个 iOS 应用程序(二)