通俗地來講:建立了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理解比較深的朋友使用