Box:CSS布局的基本单位
BOX是CSS布局的对象和基本单位,直观的说,一个页面由很多歌BOX组成,元素的类型和display属性决定了这个BOX的类型。不同类型的BOX,会参与不痛的formatting context,因此BOX内的元素会以不同的方式渲染。
- block-level box:下有介绍
- inline-level box:display属性为inline,inline-block,inline-table的元素等……
- run-in box:css3中有
BFC:块级格式化上下文。它是一个独立的渲染区域,只有Block-level box参与,规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。常说的文档流分为定位流、浮动流和普通流三种。而普通流其实就是指BFC中的FC(Formatting context格式化上下文)。常见的FC有BFC(块级格式化上下文)、IFC(行级格式化上下文)、GFC(网格布局格式化上下文)和FFC(自适应格式化上下文);
触发BFC的条件或元素:
- 根元素,HTML元素
- float:left、right
- overflow的值不为visible
- display的值为inline-block、table-cell、table-caption
- position的值为absolute或fixed
BFC的布局规则:
- 内部BOX在垂直放下,一个接一个放置;
- BOX垂直方向的距离由margin决定。属于同一个BFC两个相邻的BOX的margin会发生重叠(坍塌)
- 每个元素的margin box的左边,与包含块border box的左边相接触。即使浮动
- BFC的区域不会与float box重叠
- BFC就是页面上的一个隔离的独立容器,容器子元素不会影响到外面的元素,反之亦然
- 计算BFC的高度,浮动元素也参与计算
BFC的应用:
- 自适应两栏布局】‘
- 组织元素被浮动元素覆盖
- 包含浮动元素——清楚内部浮动
- 阻止margin坍塌
- 在线应用网站http://www.cnblogs.com/xiaohuochai/p/5248536.html#undefined