1.BFC的含义 :
Block Formatting Contexts(BFC)块级元素格式化上下文
Web页面中盒模型布局的CSS渲染模式,指一个独立的渲染区域或者说是一个隔离的独立容器。
块级元素:父级(是一个块元素)
内容:子元素(是一个块元素)
其他元素:与内容同级别的兄弟元素
相互作用:BFC里的元素与外面的元素不会发生影响
2.触发条件:
触发BFC的方式(一下任意一条就可以)
1.浮动元素,float 除 none 以外的值
2.定位元素,position(absolute,fixed);
3.overflow的值不为visible
4.display的值为table-cell、tabble-caption和inline-block之一
3.FBC布局与普通文档流布局区别
-
普通文档流布局规则
1.浮动的元素是不会被父级计算高度 2.非浮动元素会覆盖浮动元素的位置 3.margin会传递给父级 4.两个相邻元素上下margin会重叠
-
BFC布局规则
1.浮动的元素会被父级计算高度(父级触发了BFC) 2.非浮动元素不会覆盖浮动元素位置(非浮动元素触发了BFC) 3.margin不会传递给父级(父级触发了BFC) 4.两个相邻元素上下margin会重叠(给其中一个元素增加一个父级,然后让他的父级触发BFC)
4.BFC的特性
1.内部的Box会在垂直方向上一个接一个的放置。
2.垂直方向上的距离由margin决定
3.bfc的区域不会与float的元素区域重叠。
4.计算bfc的高度时,浮动元素也参与计算
5.bfc就是页面上的一个独立容器,容器里面的子元素不会影响外面元素。
5.解决BFC
利用overflow:hidden清除浮动,解决浮动的盒子无法撑出处于标准文档流的父盒子的height。