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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257288.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javaweb学习总结——Filter高级开发

在filter中可以得到代表用户请求和响应的request、response对象,因此在编程中可以使用Decorator(装饰器)模式对request、response对象进行包装,再把包装对象传给目标资源,从而实现一些特殊需求。 一、Decorator设计模式 1.1、Decorator设计模…

html期末网页设计,求网页设计的期末作业一份 HTML的

1. 课程设计建议主题方向:电子商务类网站、门户类网站、专题类网站。整体要求:主题鲜明、健康;风格自然、内容充实、完整;布局合理,配色和谐。(5分)2. 网站至少包括15张页面(包括首页)&#x…

Android(java)学习笔记10:同步中的死锁问题以及线程通信问题

1. 同步弊端: (1)效率低 (2)如果出现了同步嵌套,就容易产生死锁问题 死锁问题及其代码 : (1)是指两个或者两个以上的线程在执行的过程中,因争夺资源产生的一种…

4源代码的下载和编译

1、Android移植主要就是Linux内核移植,而Linux内核移植主要是Linux驱动移植,为了开发和测试Linux驱动,要在Ubuntu下搭建两套开发环境:Android应用程序开发环境和Linux内核开发环境; 2、Android源代码包括:内…

在html中三个图片切换,轻松搞定网页中的图片切换

生活中经常看到,像新浪等很多门户网站的首页都有滚动图片的展示,如下图所示:某网站首页滚动切换图片这样不但可以减少文字的单一、乏味,而且可以直观内容,更好的吸引用户。那在我们做软件系统时,是否也可以…

python 进程编程速成

python具有thread多线程库,但多线程并不是真正的多线程,不能充分利用多核CPU资源。 在大多数情况下,python可以使用multiprocessing多进程库,可以轻松完成从单进程到并发执行的转换。 multiprocessing库支持子进程、通信和共享数据…

requirejs(shim)处理加载非AMD规范的js库

使用requirejs加载模块,模块的定义得遵守AMD规范,也即定义模块的时候使用如下函数定义模块: 1 define(function(){ 2 var private function(){ 3 console.log(私有方法...); 4 }; 5 return { 6 public:funct…

关于常用meta的总结

入行也半年了,无数次的想过写博客也无数次的想过第一篇会写什么,一直没有落实。今天心血来潮把博客开了,那就写点东西吧。第一篇就写一写看似简单但又经常不注意到的meta标签吧。(博主经验尚浅,有许多理解不到位的地方…

计算机应用基础18春在线作业1答案,东师计算机应用基础-18春在线作业1.docx

东师计算机应用基础18春在线作业11、A 2、C 3、C 4、C 5、B一、单选题共25题,62.5分1、国际区位、全拼双音、五笔字型和自然码是不同种类的汉字A外码B内码C字型码D交换码正确答案是:A2、汉字字形码的使用是在____A输入时B内部传送时C输出时D两台计算机之…

jQuery Validate 验证,校验规则写在控件中的具体例子

将校验规则写到控件中 <script src"../js/jquery.js" type"text/javascript"></script> <script src"../js/jquery.validate.js" type"text/javascript"></script> <script src"./js/jquery.metadata…

在oracle中使用Trigger

1、初始目标 在对表h1插入一条数据时&#xff0c;同时插入一条重复的数据&#xff08;只有主键不同&#xff09; 2、在PL/SQL里New一个Trigger或者手动敲入代码 先说明一下&#xff0c;表h1包括4列ID、C1、C2、C3 create or replace trigger Trigger_Testafter insert on h1for…

html突出显示,javascript-记住html页面中突出显示的文本(向html页面添加注释)

我有一个HTML文件,我正在用webkit打开它,我想开发一个应用程序,这样,在打开它之后,我应该能够选择一些文本并将其突出显示(例如,按下“ highlight text”按钮).并且它应该记住突出显示的文本,以便下次打开时应自动突出显示相同的文本…要存储哪些信息,以便下次可以突出显示相同…

cygwin

根据cygwin user guide翻译整理&#xff0c;希望对大家有所帮助。有错误清指出。 1 引言 cygwin是一个在windows平台上运行的unix模拟环境&#xff0c;是cygnus solutions公司开发的自由软件&#xff08;该公司开发了很多好东西&#xff0c;著名的还有eCos&#xff0c;不…

JAVA wait(), notify(),sleep具体解释

在CSDN开了博客后&#xff0c;一直也没在上面公布过文章&#xff0c;直到前一段时间与一位前辈的对话&#xff0c;才发现技术博客的重要&#xff0c;立志要把CSDN的博客建好。但一直没有找到好的开篇的主题&#xff0c;今天再看JAVA线程相互排斥、同步的时候又有了新的体会&…

通过键盘上下键 JS事件,控制候选词的选择项

效果图 JS代码 //上下键 选择事件 searchBackgroud 为样式&#xff0c;只做标记&#xff0c;无实质样式&#xff0c;因为和其他样式不兼容&#xff0c;只能添加CSS$(document).keydown(function (event) {var upDownClickNum $("#SearchTips .searchBackgroud ").l…

物理竞赛得奖学计算机,物理竞赛林紫琪带你探索清华学堂计算机科学实验班”(姚班)...

林紫琪&#xff0c;34届全国中学生物理竞赛全国第22名&#xff0c;获得女生最高分&#xff0c;入选国家集训队&#xff0c;现就读于清华姚班。这是一条小科普&#xff1a;“清华学堂计算机科学实验班”(姚班)由世界著名计算机科学家姚期智院士于2005年创办&#xff0c;致力于培…

Jmeter===Jmeter中使用CSV Data Set Config参数化不重复数据执行N遍(转)

Jmeter中使用CSV Data Set Config参数化不重复数据执行N遍 要求&#xff1a; 今天要测试上千条数据&#xff0c;且每条数据要求执行多次&#xff0c;&#xff08;模拟多用户多次抽奖&#xff09; 1.用户id有175个&#xff0c;且没有任何排序规则&#xff1b; 2.要求175个用户都…

[转]wireshark 实用过滤表达式(针对ip、协议、端口、长度和内容) 实例介绍

首先说几个最常用的关键字&#xff0c;“eq” 和 “”等同&#xff0c;可以使用 “and” 表示并且&#xff0c;“or”表示或者。“!" 和 "not” 都表示取反。 一、针对wireshark最常用的自然是针对IP地址的过滤。其中有几种情况&#xff1a; &#xff08;1&#xff0…

[Flexbox] Using order to rearrange flexbox children

Using the order property we alter the order in which flexbox children appear on the page, without making changes to the dom. Desktop Mobile 转载于:https://www.cnblogs.com/Answer1215/p/5453671.html

计算机怎么更改用户头像像,Win10系统电脑账户头像怎么改成系统默认状态?

为了保护电脑的安全&#xff0c;我们可以设置登录账号密码&#xff0c;而账号的头像也是可以自行更换的。但是&#xff0c;某些时候&#xff0c;因为一些原因&#xff0c;我们需要将Win10系统账户的头像去掉&#xff0c;即改成默认状态。但是很多人都不清楚该怎么操作&#xff…