通俗地来讲:建立了BFC的元素就是一个独立的盒子,里面的子元素不会在布局上影响外面的元素,反之亦然,同时BFC任然属于文档中的普通流。css
float 除了none之外的值html
overflow 除了visible 之外的值(hidden,auto,scroll )浏览器
display (table-cell,table-caption,inline-block)布局
position(absolute,fixed)spa
fieldset元素(实验中,不建议使用)code
.lbf-content { overflow: hidden; }
.lbf-content { display: table-cell; width: 9999px; }
第二种会让连续英文字符换行,解决方法:htm
浮动的缺点:.word-break { display: table; width: 100%; table-layout: fixed; word-break: break-all; }
没法撑起父元素。文档
清除浮动经常使用的几种方式:
简单看看如何造成BFC:
(1)float值不为none,能够是left,right或both
(2)overflow为hidden或auto或scroll
(3)display为inline-block或table-cell或table-caption
(4)position为absolute或fixed
咱们能够对父容器添加这些属性使其变成BFC,从而达到“清浮动”效果
.clearfloat:after{display:block;clear:both;content:"";}
.clearfloat{zoom:1}
添加一个空div,利用css提升的clear:both清除浮动,让父级div能自动获取到高度it
父级div手动定义height,就解决了父级div没法自动获取到高度的问题;不推荐使用,只建议高度固定的布局时使用io
只推荐没有使用position或对overflow:hidden理解比较深的朋友使用