1.BFC
BFC 即 Block Formatting Contexts (块级格式化上下文),它属于普通流,即:元素按照其在 HTML 中的先后位置至上而下布局,在这个过程中,行内元素水平排列,直到当行被占满然后换行,块级元素则会被渲染为完整的一个新行,除非另外指定,否则所有元素默认都是普通流定位,也可以说,普通流中元素的位置由该元素在 HTML 文档中的位置决定。
可以把 BFC 理解为一个封闭的大箱子,箱子内部的元素无论如何翻江倒海,都不会影响到外部。
bfc就是一个特殊的布局区域,在这个区域里
- 会有外边距合并的问题
- 会计算浮动元素的高度
- bfc内部不会影响bfc外部
bfc里的除了新创造的bfc的内部元素,都属于同一个bfc
只要元素满足下面任一条件即可触发 BFC 特性
- body 根元素
- 浮动元素:float 除 none 以外的值
- 绝对定位元素:position (absolute、fixed)
- display 为 inline-block、table-cells、flex
- overflow 除了 visible 以外的值 (hidden、auto、scroll)
一般用 overflow:hidden;