网站建设与运营 好考吗seo关键词排名优化手机
BFC 盒子面试题总结
Q1:BFC盒子是什么?
BFC全称是Block Formatting Context
意思就是块级格式化上下文。
可以把BFC看做一个容器,容器里边的元素不会影响到容器外部的元素。
Q2:如何创建BFC?
- 根元素:body;
- 元素设置浮动:float 除 none 以外的值;
- 元素设置绝对定位:position (absolute、fixed);
- display 值为:inline-block、table-cell、table-caption、flex 等;
- overflow 值为:hidden、auto、scroll;
Q3:BFC的作用
- 解决 margin 的重叠问题:由于BFC是一个独立的区域,内部的元素和外部的元素互不影响,将两个元素变为两个BFC,就解决了margin重叠的问题。
- 解决高度塌陷的问题:在对子元素设置浮动后,父元素会发生高度塌陷,也就是父元素的高度变为 0。解决这个问题,只需要把父元素变成一个 BFC。常用的办法是给父元素设置overflow:hidden。
- 创建自适应两栏布局:可以用来创建自适应两栏布局:左边的宽度固定,右边的宽度自适应。
Q4:BFC的特点
- 垂直方向上,自上而下排列,和文档流的排列方式一致。
- 在 BFC 中上下相邻的两个容器的 margin会重叠
- 计算 BFC 的高度时,需要计算浮动元素的高度
- BFC区域不会与浮动的容器发生重叠
- BFC是独立的容器,容器内部元素不会影响外部元素
- 每个元素的左 margin 值和容器的左 border 相接触
参考博客
- https://www.bilibili.com/read/cv21217433/
- https://blog.csdn.net/guoao20000915/article/details/125685983
- https://github.com/ljianshu/Blog/issues/15