css之BFC和IFC

BFC

BFC(Block Formatting Context)  ------ 块级格式化上下文

w3c规范定义:浮动元素和绝对定位元素,非块级盒子的块级容器(inline-blocks,table-cells,table-captions),以及overflow的值不为visiable的块级盒子,都会为它们的内容创建新的BFC

相关定义:

block-level boxes(块级盒)------  一个 block-level element块级元素 (‘display‘ 属性值为 ‘block‘, ‘list-item‘ 或是 ‘table’) 会生成一个 block-level box,这样的盒子会参与到 block-formatting context (一种布局的方式) 中

block-formatting context(BFC) ------ 在这种布局下,盒子所在的containing block顶部起一个接一个垂直排列,水平方向上撑满整个宽度。

containing block(包含块)------ 盒子本身为其子孙建立containing block,用于计算内部盒子的位置、大小。

哪些元素会触发BFC:

  1.根元素;

  2.float属性不为none;

  3.position为absolute或者fixed

  4.display:inline-block,table-cell,table-caption,flex

  5.overflow不为visible

BFC布局准则:

  1.内部盒子在垂直方向上,一个个垂直放置

  2.其不会和float(浮动元素)重叠

  3.其垂直方向由margin决定,同一BFC布局下的元素的margin会重叠

  4.在其布局下,子元素的内容不管怎么变化都不会影响到其外部元素

  5.其高度会把float浮动元素的高度也算进去

  6.元素的左边会和其包含的盒子的左边想接触,存在浮动也是如此

BFC的用途:

  1.由于不会和浮动元素进行重叠,所以在自适应的两栏布局上起到了很好的作用。

  2.可以清除内部的浮动

  3.可以去margin重叠,因为不同BFC布局下的元素margin不会重叠

样例分析:

  自适应两栏布局

 <div>
          <img class="leftbox" src="../images/none_new.png">
          <div class="rightbox">
             <h3>开发商</h3>
             <span>sdfsdfsdfsdfs士大夫撒旦法</span>
          </div>
     </div>

  左边图片左浮动,右边内容可以设置BFC布局,不会和浮动元素进行重叠。

  广为流传的俩种两栏自适应布局:

.rightbox{overflow: hidden;*display:inline-block;} //缺点是hidden可能会隐藏溢出部分
.rightbox{display: table-cell;width:2000px;*display: inline-block;*width: auto}

IFC

IFC( Inline Formatting Contex)  ------  内联格式化上下文

w3c规范定义:从父元素的顶部开始,盒子一个接着一个横向排列,横向的margin/border/padding在这些盒子中都是有效的。盒子间可能通过不同的方式垂直对齐(底部、顶部、文字基线对齐)。

相关定义:

line box (行盒模型)  -----  根据块状容器内,每一行的多个内联元素共同生成一个行盒模型。当内联盒子的宽度超过line box,内联盒子会被分解成几个盒子,然后分布在几个line box里面,如果内联盒子不能被分解(例如:单词或者white-space:nowrap),它就会超过line-box。

影响布局的css:

  1.font-size

  2.line-height

  3.height

  4.vertical-align

原文地址:https://www.cnblogs.com/wjmm/p/8400387.html

时间: 2024-11-16 19:44:55

css之BFC和IFC的相关文章

css中bfc和ifc

bfc定义:块级格式化上下文,他是一个独立的渲染区域,他规定了这个内部如何布局,并且与这个区域的外部毫不相干.BFC布局规则: 内部的Box会在垂直方向,一个接一个地放置.Box垂直方向的距离由margin决定.属于同一个BFC的两个相邻Box的margin会发生重叠每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反).即使存在浮动也是如此.BFC的区域不会与float box重叠,常用来清除浮动和布局.BFC就是页面上的一个隔离的独

css布局的各种FC简单介绍:BFC,IFC,GFC,FFC

什么是FC? Formatting Context,格式化上下文,指页面中一个渲染区域,拥有一套渲染规则,它决定了其子元素如何定位,以及与其他元素的相互关系和作用. BFC 什么是BFC Block Formatting Context,块级格式化上下文,一个独立的块级渲染区域,该区域拥有一套渲染规则来约束块级盒子的布局,且与区域外部无关. BFC的约束规则 内部的BOX会在垂直方向上一个接一个的放置: 垂直方向上的距离由margin决定.(完整的说法是:属于同一个BFC的俩个相邻的BOX的ma

浅谈BFC和IFC

先说说FC,FC的含义就是Fomatting Context.它是CSS2.1规范中的一个概念.它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用.BFC和IFC都是常见的FC.分别叫做Block Fomatting Context 和Inline Formatting Context. BFC BFC(Block Formatting Context)叫做"块级格式化上下文".BFC的布局规则如下: 1.内部的盒子会在垂直方向,一

关于BFC以及IFC

BFC就是用来格式化块级盒子,同样管理inline类型的盒子还有IFC,以及其他的FC. 1. 首先我们要知道什么是FC Formatting context 是 W3C CSS2.1 规范中的一个概念.它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用.最常见的 Formatting context 有 Block fomatting context (简称BFC)和 Inline formatting context (简称IFC). C

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

重拾 BFC、IFC、GFC、FFC

温故知新,巩固基础 从 FC 开始 FC,Formatting Context,格式化上下文,是 W3C CSS2.1 规范中的一个概念,定义的是页面中一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,及和其他元素的关系和相互作用. 常见的FC有:BFC(Block Formatting Context | 块级格式化上下文)和IFC(Inline Formatting Context | 行内格式化上下文). 其次还有:GFC(GridLayout Formatting Conte

BFC和IFC

Box: CSS布局的基本单位 Box 是 CSS 布局的对象和基本单位, 直观点来说,就是一个页面是由很多个 Box 组成的.元素的类型和 display 属性,决定了这个 Box 的类型. 不同类型的 Box, 会参与不同的 Formatting Context(一个决定如何渲染文档的容器),因此Box内的元素会以不同的方式渲染.让我们看看有哪些盒子: BFC  快级格式化上下文 block-level box:display 属性为 block, list-item, table 的元素,

BFC与IFC

BFC与IFC 在我们做的网页上通常最重要的其中一点就是美观度,bfc他是一个块级格式化上下文,它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干. 因为我现在天天在做网页了,之前没怎么关注bfc与ifc原理,以至于我做出来的网页有点偏差.所以要深刻学习以下知识. bfc:指它里面的子元素不会影响到外面的元素加上一个overflow:hilden该元素的子元素是一个bfc下面只要触发的是个bfc那么它

css3之BFC、IFC、GFC和FFC

CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC. What's FC?一定不是KFC,FC的全称是:Formatting Contexts,是W3C CSS2.1规范中的一个概念.它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用. BFCBFC(Block Formatting Contexts)直译为"块级格式化上下文".Block Formatting Contexts就是页面上的一个隔离的渲染区域,容器里面