- 根元素或包含它的东西
- 浮动(浮动不是无的元素)
- 绝对定位元素(位置为绝对或固定的元素)
- 内联块(带有 的元素
display: inline-block
) - 表格单元格(带有 的元素
display: table-cell
,这是 HTML 表格单元格的默认值) - 表格标题(带有 的元素
display: table-caption
,这是 HTML 表格标题的默认值) - 溢出的值不是
visible
display: flex
弹性盒子(带有or的元素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 有一个边框。为什么?