什么时候会触发BFC呢?常见的如下:
float
的值不为none
。overflow
的值为auto
,scroll
或hidden
。display
的值为table-cell
,table-caption
,inline-block
中的任何一个。position
的值不为relative
和static
。
在BFC中能担任自适应布局重任的也就是:
overflow:auto/hidden
IE7+display:inline-block
IE6/IE7display:table-cell
IE8+
由于overflow有剪裁和出现滚动条等隐患,不适合作为整站通用类,于是,最后,类似清除浮动的通用类语句:
.clearfix { *zoom: 1; } .clearfix:after { content: ''; display: table; clear: both; }
两栏或多栏自适应布局的通用类语句是(block
水平标签,需配合浮动):
.cell { display: table-cell; 9999px; *display: inline-block; * auto; }
这就是zxx.lib.cssCSS样式库中.cell
的由来!
当然,由于和浮动元素合作,清除浮动还是要的,于是,就有了.fix
+ .l/.r
+ .cell
的无敌组合,可以多栏,也可以无限嵌套。
如果是局部,且确认安全;或有连续英文字符换行的隐患,你也可以使用.fix
+ .l/.r
+ .ovh
的无敌组合,可以多栏,也可以无限嵌套。
本文来自张鑫旭