html - 什么是初始包含 block ,它是否建立 block 格式化上下文?

标签 html css w3c

标准Collapsing margins

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 中找到它。

最佳答案

initial containing block定义为:

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/

相关文章:

html - 如何将图像转换为html?

jquery div 等于窗口高度随内容延伸

html - 重写这段代码 : clickable divs

css - CSS规范中找不到绝对定位规则

javascript - 如何使用javascript在动态表单提交后调用回调

Javascript - 用不同的值替换具有相同类的元素

html - 桌面版 iPhone 5 的媒体查询

javascript - 将节点作为字符串插入但保留节点的实例

css - 如何强制浏览器添加填充等大小?

xsd - 使用 XSD 1.1 基于另一个属性的元素限制