你确定用到过,但你可能从没听过这两单词,刚接触的时候,我实在没法把这两单词与我常做的行为连在一块儿,纠结了一个下午,我疯了。布局
BFC(Block Formatting Context),简单讲,它是提供了一个独立布局的环境,每一个BFC都遵照同一套布局规则。有人作出很恰当的比喻:spa
你能够把一个页面想象成大的集装箱,这个集装箱里装的货物就是HTML元素。在现实生活中为了不不一样人的货物相互混淆,都是把货物打好包装再装入集装箱,这样的话不管你包装里面的货物怎么摆放,都不会影响到其余人的货物。那么这个包装就能够被想象成Block Formatting Context。
HasLayout 当一个元素的 hasLayout 属性值为true时,咱们说这个元素有一个布局(layout)orm
触发HasLayoutit
* display: inline-block
* height: (任何值除了auto)
* float: (left 或 right)
* position: absolute
* width: (任何值除了auto)
* writing-mode: tb-rl
* zoom: (除 normal 外任意值)io
Internet Explorer 7 还有一些额外的属性(不彻底列表):table
* min-height: (任意值)
* max-height: (除 none 外任意值)
* min-width: (任意值)
* max-width: (除 none 外任意值)
* overflow: (除 visible 外任意值)
* overflow-x: (除 visible 外任意值)
* overflow-y: (除 visible 外任意值)
* position: fixedscroll
触发BFCfloat