【发布时间】:2013-05-05 14:04:33
【问题描述】:
来自W3C 和MDN 我知道块格式化上下文是由以下之一创建的:
- 根元素或包含它的东西
- 浮动(浮动不是无的元素)
- 绝对定位元素(位置为绝对或固定的元素)
- inline-blocks(带有
display: inline-block的元素) - 表格单元格(带有
display: table-cell的元素,这是HTML表格单元格的默认值) - 表格标题(带有
display: table-caption的元素,这是HTML表格标题的默认值) - 溢出的值不是
visible的元素 - 弹性框(带有
display: flex或inline-flex的元素)
但我对以下代码有疑问:
<div style='background:grey;border:black 1px dotted;width:400px'>
<div style='margin:20px;background:red;'>the parent create a bfc</div>
</div>
<div style='background:grey;width:400px'>
<div style='margin:20px;background:red;'>why?</div>
</div>
第一个 div 元素创建一个 BFC,但它们之间的唯一区别是第一个 div 有一个边框。为什么?
【问题讨论】:
-
@user2253835:它在标题中说:“块格式上下文”。