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

时间:2014-03-25 10:15:08

标签: html css w3c

标准Collapsing margins

  

当且仅当:

时,两个边距相邻      

都属于参与相同块格式化上下文的流入块级框

     

...

以下是演示: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”的边距已经崩溃

所以我想知道初始包含块是否建立了块格式化上下文(BFC),因此这两个框位于同一个BFC中。

但是我没能在W3C中找到它。

1 个答案:

答案 0 :(得分:0)

initial containing block定义为:

  

根元素所在的包含块是一个称为初始包含块的矩形。

即。它包含HTML文档的<html>元素。

它确实建立了一个块格式化上下文,但是示例中的两个元素不能成为它的子元素,所以可能还有其他东西首先建立一个新的块格式化上下文。

我无法想到两个display: blockfloat: noneposition: static相邻兄弟姐妹不会共享块格式上下文的任何情况。