BFC是什么呢?
掏粪男孩?
当然不是咯。BFC,英文名Block formatting context,直译为“块级格式化上下文”。它是W3C CSS 2.1规范中的一个概念,决定了元素如何对内容进行定位,以及与其他元素的关系和相互作用。下表就是成为BFC元素后的特性以及如何成为BFC。
|
BFC(参考W3C) |
|
|
特性 |
进行盒模型布局的时候,如果一个元素符合了成为BFC的条件,那么该元素就成为了一个隔离的独立容器,BFC的区域不会与外部浮动元素重叠,且在同一个BFC内的两个相邻块级元素的外边距会重叠,但不同 BFC外边距不会重叠;在计算BFC高度时,将它内部的浮动元素也包含在内。 总之,BFC与外部元素互不影响 |
|
触发BFC的方法 |
1、 根元素 2、 float属性不为none 3、 position为absolute或fixed 4、 overflow的值不为visible 5、 display的值为table-cell,table-caption,inline-block中的任何一个。 |
谈了半天,你可能会问,咦,葛葛,那使元素成为BFC到底有么子用呢?
这就得,从它的特性入手,特别是我加粗的部分,可以知道,BFC元素可以防止与浮动元素重叠嘛。
恩?什么意思。看看下面的demo
<!DOCTYPE html> <head> <title>BFC</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <style> .leftDiv { width:100px; height:100px; background:green; float:left; } .normalDiv { height:100px; background:pink; } </style> </head> <body> <div class="leftDiv"></div> <div class="normalDiv"></div> </body> </html>