Two margins are adjoining if and only if:
both belong to in-flow block-level boxes that participate in the same block formatting context
...
这是一个演示:http://jsfiddle.net/yaway/Pz4QZ/
html
<div class="box-a bfc">drei</div>
<div class="box-b bfc">vier</div>
CSS
* {
margin:0;
padding:0
}
.box-a,
.box-b {
height:100px;
margin:10px 0;
border:1px solid #fff;
}
.box-a {
background-color:#fee
}
.box-b {
background-color:#efe
}
.bfc {
overflow:hidden;
}
框“drei”和“vier”的边距折叠
所以我想知道初始包含 block 是否建立了 block 格式化上下文(BFC),所以这两个框在同一个BFC中。
但我没能在 W3C 中找到它。
最佳答案
The containing block in which the root element lives is a rectangle called the initial containing block.
即它包含 <html>
HTML 文档的元素。
它确实建立了一个 block 格式化上下文,但是你的例子中的两个元素不能是它的子元素,所以可能有其他东西首先建立一个新的 block 格式化上下文。
我想不出任何情况下两个 display: block
, float: none
, position: static
不过,相邻的 sibling 不会共享 block 格式化上下文。
关于html - 什么是初始包含 block ,它是否建立 block 格式化上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22631406/