Fangjian

FE / 生活是一种态度

导航
 » 主页
 » 项目
 » Github
 » 关于我

BFC [css]

16 Jan 2016 » css

BFC(Block formatting context) 是 CSS中非常重要的一个概念,其实学习难度并不大,只是里面的概念太多,需要花时间去理解

目录


1 BFC是什么

2 BFC怎么产生的

3 BFC 使用场景

4 兼容性


一、BFC是什么

1. 定义

FC: 文档流分为三种 定位流、浮动流、普通流,而 FC(格式化内容) 指的就是普通文档流。它是页面中的 一块渲染区域,有一套渲染规则决定了其子元素如何布局,以及和其他元素之间的关系和作用。

BFC: 也叫块级格式化内容,比较难懂~~~~ , 别急! 它是一个独立的渲染区域,只有在 Block-level Box(块级元素) 参与,它规定了内部的 Block-level Box如何布局,并且不与外部的区域不相互影响。

总结:BFC 是用于布局块级盒子的一块渲染区域


二、BFC怎么产生的

满足以下条件即可产生BFC

  • 根元素,即 html
  • float的值不为none
  • overflow的值部位visible
  • display的值为inline-block、table-cell、table-caption
  • position的值为absolute或fixed

三、BFC 使用场景

【1】可以阻止元素被浮动元素覆盖


【2】可以包含浮动元素 – 清除内部浮动元素

说明: 通过改变高度塌陷的黑色边框的盒子的属性值,使其成为BFC,以此来包含绿色的浮动盒子


【3】属于同一个BFC的两个相邻块级子元素的上下margin会发生重叠

说明: 淡红色背景的块级盒子二的外面包一个div,通过改变此div的属性使红色盒子与绿色盒子分属于两个不同的BFC,以此来阻止margin重叠


【4】自适应两栏布局

说明: mian 触发为 BFC,才能自适应


四、兼容性

IE 浏览器由于未能很好的支持 BFC标准,衍生了 和BFC 等价的 Layout 概念。 所以我们在触发 BFC 的时候,还需要针对IE 浏览器使用 zoom: 1 来触发IE 浏览器的 Layout。

相关文章