# BFC 和 IFC
# BFC 是什么
BFC(block formatting context)块级格式化上下文
# BFC 布局规则
1)内部的 box 会在垂直方向,一个接一个地放置。
2)box 垂直方向由 Margin 决定,属于同一个 BFC 的两个相邻 box 的 margin 会发生重叠。
3)每个元素的 margin box 的左边,与包含块 border box 的左边相接触。
4)BFC 的区域不会与 float box 重叠。
5)BFC 就是页面上的一个隔离容器,容器里的子元素不会影响外面的元素。
6)计算 BFC 的高度时,浮动元素也参与计算。
# 会生成 BFC 的元素
根元素
float 属性不为 none
position 为 absolute 或 fixed
display 为 inline-block,table-cell,table-caption,flex,inline-flex
overflow 不为 visible
# BFC 作用
自适应两栏布局
清除内部浮动
防止垂直 margin 重叠
# IFC 是什么
IFC(Inline Formatting Contexts)内联格式化上下文
# IFC 布局规则
1)子元素水平方向横向排列,并且垂直方向起点为元素顶部
2)子元素只会计算横向样式空间,【padding、border、margin】,垂直方向样式空间不会被计算,【padding、border、margin】
3)在垂直方向上,子元素会以不同形式来对齐(vertical-align)
4)float 元素优先排列
# IFC 作用
解决元素垂直居中
多个文本元素行高不一致排列混乱