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

可以解决什么问题:1.不与浮动元素重叠;2.可以清除元素内部浮动;3.解决上下两个相邻元素的重叠(margin);4.自适应布局

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

时间: 2024-12-10 05:43:02

BFC,IFC,GFC,FFC的定义及功能的相关文章

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

作者原文网址:http://www.cnblogs.com/dingyufenglian/p/4845477.html   What‘s FC? 一定不是KFC,FC的全称是:Formatting Contexts,是W3C CSS2.1规范中的一个概念.它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用. BFC BFC(Block Formatting Contexts)直译为"块级格式化上下文".Block Formattin

学习BFC、IFC、FFC、GFC

FC(Formatting Context)格式化内容,常见的FC有BFC.IFC.FFC.GFC四种类型,BFC和IFC是W3C CSS2.1规范提出的概念,FFC和GFC是W3C CSS3规范提出的概念,其实就是定义了一套页面渲染的规则,决定了盒子以什么样的方式渲染从而占据什么样的位置区域,本文只是简单的学习笔记以供参考. 想要弄懂FC,首先得弄清楚盒子模型,常见的两种盒子模型为: IE盒子模型(怪异模式): width = content-width + padding-width + b

Dreamweaver8下定义WEB功能页面介绍

dreamweaver8下定义WEB功能页面介绍 说到dreamweaver8,相信大家都比我熟悉,也许有人说dreamweaver8是一个开发工具,那开发工具多了,我自己是这么认为的,dreamweaver8是专业的网页开发工具:由于自己是做运维的,所以在开发的角度我算是一个绝对的菜鸟,可以说是一窍不通,之前就没做过开发先关的东西,现在才开始慢慢接触,所以每天晚上回家看看java.html.jsp相关的文档学习,同时,我们大家都知道一般正常的页面程序文件通过新建超级文本文件来修改扩展名来定义文

node.js fs所有函数的定义和功能

表4-1 fs 模块函数表 功能 异步方法 同步方法 打开文件  fs.open(path,flags, [mode], [callback(err, fd)])  fs.openSync(path, flags, [mode]) 关闭文件  fs.close(fd, [callback(err)])  fs.closeSync(fd) 读取文件(文件描述符 )fs.read(fd,buffer,offset,length,position, [callback(err, bytesRead,

BFC、IFC、FFC、GFC

FC(Formatting Context) 它是W3C CSS2.1规范中的一个概念,定义的是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用. BFC(block formatting context) 直译为“块级格式化上下文” W3C原文: Floats, absolutely positioned elements, block containers (such as inline-blocks, table-cells, and t

BFC IFC 总结记录

引用参考:https://segmentfault.com/a/1190000017273573?utm_medium=referral&utm_source=tuicool http://www.cnblogs.com/lhb25/p/inside-block-formatting-ontext.html BFC 定义 BFC(Block formatting context)直译为"块级格式化上下文".它是一个独立的渲染区域,只有Block-level box参与, 它规定

CSS3/BFC/IFC

SCC3边框 1.给边框添加圆角:     <!DOCTYPE html>     <html>     <head>     <style>      div{     text-align:center;[文本为水平方向对其,居中]     border:2px solid #a1a1a1;     padding:10px 40px; [内边距间距为上下和左右]     background:#dddddd;     width:350px;[宽度]

Java实现分页功能 代码很粗糙,都是根据自己所需去定义逻辑功能的。

1.首先定义了一个PageUtil的类,看了网上的很多教程,貌似都有一个这样的类,自己也定义了一个.在代码编写过程中发现这个类其实也没有那么大的作用,但是不去定义这个类,感觉好像缺少什么似得.(请高手解释下这个类的存在的意义.) 1 package com.util; 2 3 public class PageUtil { 4 private int totalRows; //总的记录数 5 private int curPage; //当前页码 6 private int pageSize;

170322操作系统定义、功能、位置与历史

一.什么是操作系统 1.1操作系统(英语:Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在"裸机"上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行. 1.2操作系统是控制和管理计算机硬件资源(CPU.内存.外存.输入输出设备等物理资源)和软件资源(以文件形式保存在外存上的程序和数据等信息).合理地组织计算机工作流程以及方便用户使用计算机的一个大型程序. 1.3(1)OS内核:500万行代码级,100本,1000页/