作者原文网址:http://www.cnblogs.com/dingyufenglian/p/4845477.html

 

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

转载于:https://www.cnblogs.com/chen1zee1/p/chen1zee1_css.html

css3中的BFC,IFC,GFC和FFC(转载)相关推荐

  1. (37) BFC IFC GFC FFC概念

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

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

    BFC

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

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

  4. css3之BFC、IFC、GFC和FFC

    CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC. What's FC? 一定不是KFC,FC的全称是:Formatting Contexts,是W3C CSS2.1规范中的一个概念. ...

  5. 【转】前端的BFC、IFC、GFC和FFC

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

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

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

  7. BFC、IFC、GFC、FFC

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

  8. BFC、IFC、GFC 和 FFC 的区别?

    在描述他们之间的区别之前,我们首先要了解一下什么是 BFC.IFC.GFC.FFC? 我们知道元素有内联元素.块级元素.行内块级元素,在页面上渲染时它们的定位,排列方式等都有所不同,就是因为它们根据内 ...

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

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

最新文章

  1. Angular 变化检测详解
  2. 10 个最值得 Python 新人练手的有趣项目
  3. 一个简易实用的web权限管理模块的应用与实现
  4. Xorequ(BZOJ3329+数位DP+斐波那契数列)
  5. 子弹射中敌人播放爆炸并销毁的动画效果
  6. 《大话》之 策略模式 Vs 状态模式
  7. Linux使用cmake编译项目,如何使用cmake在linux中构建Qt项目(How to build Qt project in linux with cmake)...
  8. 最新斗鱼JS逆向分析
  9. java怎么连不上xml_java mvc web 项目web.xml头改错了,死活加载不上springMvc的jar
  10. ORACLE数据库设置编码
  11. android c vector用法,c – 使用std:vector作为低级缓冲区
  12. [LeetCode]Reverse Integer
  13. Linux vim编辑器在哪,【Linux】Linux中VIM编辑器的使用
  14. 2d开源游戏引擎_前5名:构建出色的CLI,开源2D游戏引擎等
  15. arcgis悬挂点修改_ArcGIS拓扑编辑修正点位置的问题
  16. fudanNLP-使用
  17. EXCEL去掉所有英文
  18. 小刘同学的第一百五十八篇日记
  19. 【今日头条】米兜Java全部资料被曝光
  20. 缴费报修小程序开发制作功能介绍

热门文章

  1. 办理房贷前,名下信用卡必须全部还清吗?
  2. 2018年去贷款,是否可以不用找信贷经理帮忙?
  3. python中缩进_python编程中的缩进是什么意思
  4. 通过服务器给多台计算机装系统,怎么快速给机房多台电脑安装系统?
  5. bochs上网镜像怎么上网_【干货科普】上网慢!经常掉线!怎么办?
  6. c语言的有趣小程序,一个有趣的小程序
  7. thinkphp如何通过php请求接口,thinkphp怎么做json数据接口
  8. java连接mongodb_第78天: Python 操作 MongoDB 数据库介绍
  9. 受限玻尔兹曼机准备知识——蒙特卡洛方法
  10. ubuntu 15.04 下的 nvidia(待续)