首先要知道:BFC和IFC出现在CSS2.1中,直到CSS3中才有GFC和FFC。

FC是什么?

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作用

  • 水平居中:当一个块要在环境中水平居中时,设置其为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的区别

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 定义了伸缩容器内伸缩项目该如何布局。

什么是BFC、IFC、GFC、FFC?相关推荐

  1. (37) BFC IFC GFC FFC概念

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

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

    BFC

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

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

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

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

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

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

  6. 静态补充CSS之IFC、FFC、GFC讲解

    IFC简介 行级格式化上下文Inline Formatting Context IFC布局规则: ①在一个行内格式化上下文中,盒是一个接一个水平放置 ②这些盒之间的水平margin,border和pa ...

  7. CSS3与页面布局学习笔记(三)——BFC、定位、浮动、7种垂直居中方法

    一.BFC与IFC 1.1.BFC与IFC概要 BFC(Block Formatting Context)即"块级格式化上下文", IFC(Inline Formatting Co ...

  8. CSS3与页面布局学习总结(四)——页面布局大全BFC、定位、浮动、7种垂直居中方法...

    目录 一.BFC与IFC 1.1.BFC与IFC概要 1.2.如何产生BFC 1.3.BFC的作用与特点 二.定位 2.2.relative 2.3.absolute 2.4.fixed 2.5.z- ...

  9. 合格前端系列第九弹-前端面试那些事

    2019独角兽企业重金招聘Python工程师标准>>> 项目相关 自我介绍:职业经历,项目经历 选一个你觉得印象最深的项目讲一讲,然后会从项目里面切入到 web 基础(html/cs ...

  10. CSS魔法堂:重新认识Box Model、IFC、BFC和Collapsing margins

    前言   盒子模型作为CSS基础中的基础,曾一度以为掌握了IE和W3C标准下的块级盒子模型即可,但近日在学习行级盒子模型时发现原来当初是如此幼稚可笑.本文尝试全面叙述块级.行级盒子模型的特性.作为近日 ...

最新文章

  1. 从近两年的CVPR会议来看,目标检测的研究方向是怎么样的?
  2. c语言在程序中显示现在星期几,C语言程序设计: 输入年月日 然后输出是星期几...
  3. ctf 绕过php,Bugku-CTF之各种绕过
  4. Kali Linux与Ubuntu的ssh服务
  5. python中yaml模块的使用_详解Python yaml模块
  6. 11.15PMP试题每日一题
  7. c语言课程设计做科普,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...
  8. 我们终将死去,这难道不够美好吗?
  9. 基于Java毕业设计中国古诗词学习平台源码+系统+mysql+lw文档+部署软件
  10. 隐藏隧道通信:Socks 隧道
  11. 出入库单据小票移动打印,盘点机PDA连接蓝牙打印机打印单据小票
  12. Linux之旅 - 入⻔命令集 - 文件管理(1/2)
  13. 【02】一个实现h5的拖放的整个过程-魔芋
  14. ad16 导入dwg_AD16怎样精确导入CAD文件
  15. 《零基础学C语言》光盘内容
  16. 毛玻璃效果的登录页面
  17. 计算机音乐念诗之王,念诗之王(电音版)
  18. R 多变量数据预处理_R语言常用统计方法包+机器学习包(名称、简介)
  19. 那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)【CSR文件 和 PEM 文件什么区别】
  20. Win8卸载2345看图王

热门文章

  1. motrix高速下载百度网盘资源的方法
  2. 研发效能度量实践者指南(万字长文)
  3. 计算机组成原理 关于CPU中的LDAC和STAC指令
  4. 2022CCPC桂林站感想与反思
  5. 成为软件行业的福尔摩斯,还是苏格兰场?
  6. future cancel失败一例
  7. 4GCPE工业路由器使用方法 4G转WiFi 网口 有线 串口 以太网
  8. JAVA社招,让老板心动的简历原来是这样
  9. 冠词 article
  10. 读书笔记——高效能人士的七个习惯3