CSS深入浅出-关于BFC

BFC导读

  • 名称

英文全称:Block Formatting Context
中文名:块格式化上下文

  • 在了解BFC之前,先思考一个问题:

请问:什么是色情?
联邦最高法院大法官斯图尔特更有一句名言

I know it when I see it
我们无法定义什么是色情
不过,我看了之后,就能知道它是不是

  • 类似地:
  1. 我不知道什么是 BFC
  2. 但是你写出样式,我就知道这是不是 BFC
  1. 没有定义
  2. 只有特性/功能

BFC的特性

  • BFC创建条件:
  1. 根元素或其它包含它的元素
  2. 浮动元素 (元素的 float 不是 none)
  3. 绝对定位元素 (元素具有 position absolutefixed)
  4. 内联块 (元素具有 display: inline-block)
  5. 表格单元格 (元素具有 display: table-cell,HTML表格单元格默认属性)
  6. 表格标题 (元素具有 display: table-caption, HTML表格标题默认属性)
  7. 具有overflow 且值不是 visible 的块元素,
  8. display: flow-root!!无副作用!!
  9. column-span: all 应当总是会创建一个新的格式化上下文,即便具有 column-span: all 的元素并不被包裹在一个多列容器中。
  • BFC的特性
  1. 在一个块格式化上下文中,盒在竖直方向一个接一个地放置,从包含块的顶部开始。两个兄弟盒之间的竖直距离由margin属性决定。同一个块格式化上下文中的相邻块级盒之间的竖直margin会合并
    翻译:
    在一个BFC中,子元素从BFC顶部开始,在竖直方向上一个一个地放置。
    兄弟元素之间竖直距离由margin属性决定。
    但是两个竖直margin同时出现时,会出现margin合并现象

  2. 一个块格式化上下文包括创建它的元素内部所有内容,除了被包含于创建新的块级格式化上下文的后代元素内的元素。
    翻译:
    一个BFC包含它内部元素的所有内容,除了被包含于新的BFC中的元素
    举例:
    爷爷(BFC)本来是要管家里的儿子和孙子的。但如果儿子在(另一个BFC)的话,爷爷就不管孙子了,只管儿子

BFC的功能

1. 爸爸管儿子

用 BFC 包住浮动元素
(这不是清除浮动.clearfix 才是清除浮动)

点击查看测试

2. 兄弟之间划清界限

float + div 做左右自适应布局

点击查看测试

BFC面试回答

  • 用代码回答,别口头解释
  • 就举上面两个例子
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,710评论 1 92
  • 先前在学习CSS float时,有同学提到了BFC这个词,作为求知好问的好学生,哪里不懂查哪里,那么今天就来研究一...
    这名字真不对阅读 11,605评论 3 19
  • 什么是BFC BFC全称是Block Formatting Context,即块格式化上下文。它是CSS2.1规范...
    陌客百里阅读 3,508评论 3 4
  • BFC全称是Block Formatting Context,即块格式化上下文。它是CSS2.1规范定义的,关于C...
    xf0128阅读 3,038评论 0 0
  • 当东方理想学校的卢献校长把一袋桔子递到我手里时,我知道他原本只是考虑到路上行车时,先生也许会口干。这款桔子的口感甜...
    稚吟秋声阅读 3,110评论 0 0

友情链接更多精彩内容