如何使用BFC清除CSS浮动以及解决margin合并的问题

一、CSS 最基本的布局单位

Box 是 CSS 布局的对象和基本单位。
元素的类型和display的属性决定了Box的类型。布局

二、BFC

BFC(Box Formatting Context)是一个独立的渲染区域,规定内部的元素如何布局,而且与外部的元素无关。
Formatting context 是 W3C CSS2.1 规范中的一个概念。它是页面中的一块渲染区域,而且有一套本身的渲染规则,规定了内部子元素如何定位,以及与其余元素的关系和相互做用。flex

三、BFC的布局规则

内部的Box会在垂直方向上一个接着一个放置。
Box垂直方向的距离由 margin 决定。属于同一个BFC中的两个相邻的Box上下margin会发生叠加。
每一个元素的margin box 的左边,与包含块border box 的左边相接触。即便浮动也是如此。
BFC 的区域不会与float box 重叠。
BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响外面的元素,反之也如此。
计算BFC的高度时,浮动元素也参与计算。orm

四、哪些元素会生成BFC?

根元素;
float 属性不为 none;对象

position 为 absolute 或 fixed;it

display 为 inline-block,table-cell,table-caption,flex,inline-flex;io

overflow 不为 visible; table

五、BFC的做用及原理

  自适应两栏布局:左边定宽高,右边自适应。
    左侧浮动,而后左右重叠,根据BFC的规则第3、四条,设置右侧的元素为BFC。容器

  清除内部浮动:
    一个元素里面,有两个浮动的元素,父元素的高度默认是不计算浮动元素的高度。
    解决方案,根据BFC规则第六条。原理

  防止垂直margin叠加:
    BFC内部相邻的元素的margin会叠加。
    根据BFC规则第五条,将其中一个设置为BFC便可。渲染

BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。

相关文章
相关标签/搜索