共计 794 个字符,预计需要花费 2 分钟才能阅读完成。
1、CSS 最基本的布局单位
Box 是 CSS 布局的对象和基本单位。
元素的类型和 display 的属性决定了 Box 的类型。
2、BFC
BFC(Box Formatting Context)是一个独立的渲染区域,规定内部的元素如何布局,并且与外部的元素无关。
Formatting context 是 W3C CSS2.1 规范中的一个概念。它是页面中的一块渲染区域,并且有一套自己的渲染规则,规定了内部子元素如何定位,以及与其他元素的关系和相互作用。
3、BFC 的布局规则
内部的 Box 会在垂直方向上一个接着一个放置。
Box 垂直方向的距离由 margin 决定。属于同一个 BFC 中的两个相邻的 Box 上下 margin 会发生叠加。
每个元素的 margin box 的左边,与包含块 border box 的左边相接触。即使浮动也是如此。
BFC 的区域不会与 float box 重叠。
BFC 就是页面上的一个隔离的独立容器,容器里面的子元素不会影响外面的元素,反之也如此。
计算 BFC 的高度时,浮动元素也参与计算。
4、哪些元素会生成 BFC?
根元素;
float 属性不为 none;
position 为 absolute 或 fixed;
display 为 inline-block,table-cell,table-caption,flex,inline-flex;
overflow 不为 visible;
5、BFC 的作用及原理
自适应两栏布局:左边定宽高,右边自适应。
左侧浮动,然后左右重叠,根据 BFC 的规则第三、四条,设置右侧的元素为 BFC。
清除内部浮动:
一个元素里面,有两个浮动的元素,父元素的高度默认是不计算浮动元素的高度。
解决方案,根据 BFC 规则第六条。
防止垂直 margin 叠加:
BFC 内部相邻的元素的 margin 会叠加。
根据 BFC 规则第五条,将其中一个设置为 BFC 即可。
BFC 就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。