Inline Formatting Contexts,也就是“内联格式化上下文”。css
造成条件很是简单,须要注意的是当IFC中有块级元素插入时,会产生两个匿名块将父元素分割开来,产生两个IFC,这里不作过多介绍。html
相比较于BFC,IFC的规则噼里啪啦一大堆,不多有人会耐心看下去,举几个例子,花几分钟就能够大概明白其特性。布局
.warp { border: 1px solid red; display: inline-block; } .text { margin: 20px; background: green; }
<div class="warp"> <span class="text">文本一</span> <span class="text">文本二</span> </div>
左右margin撑开,上下margin并未撑开,符合IFC规范,只计算横向样式控件,不计算纵向样式空间。spa
.warp { border: 1px solid red; width: 200px; text-align: center; } .text { background: green; }
<div class="warp"> <span class="text">文本一</span> <span class="text">文本二</span> </div>
水平排列规则根据IFC容器的text-align值来排列,能够用来实现多个子元素的水平居中。code
.warp { border: 1px solid red; width: 200px; } .text { background: green; } .f-l { float: left; }
<div class="warp"> <span class="text">这是文本1</span> <span class="text">这是文本2</span> <span class="text f-l">这是文本3</span> <span class="text">这是文本4</span> </div>
IFC中具有float属性值的元素优先排列,在不少场景中用来在文章段落开头添加“tag”能够用到。orm
利用IFC还能够作不少其余的事情,例如:解决元素垂直居中、多个文本元素行高不一致排列混乱。htm