2014-03-25 27 views
0

标准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中。

但我在W3​​C中没有找到。

+0

上一个问题是完全不同的,它不应该改变 - 新的问题应该已经发布为新的,如在这里所做的。我已经回滚了编辑并重新打开了这一个,因为它并不完全是为了重新发布。 – BoltClock

+0

@BoltClock Thx很多:D – yaway

回答

0

initial containing block定义为:

包含块,其中根元素住是矩形称为初始包含块。

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

它确实建立了块格式化上下文,但示例中的两个元素不能是它的子元素,所以可能会有其他内容首先创建新的块格式上下文。

我想不出两个display: block,float: none,position: static相邻的兄弟姐妹不会共享一个块格式化上下文。

+0

它可能与正常流量有关吗?根据[9.3节](http://www.w3.org/TR/CSS21/visuren.html#positioning-scheme),根元素实际上被认为是不流动的。流失元素为自身及其所有流入内容建立流,而不是其父流的一部分(因此,[css3-box](http://www.w3.org)中的术语“流根”/TR/CSS3盒/#类型))。由于根元素没有父元素,这是有道理的。由于根元素是流根,因此它建立了根块格式化上下文。 – BoltClock

+0

好的,css3-box说,“CSS level 2规范中的术语是不同的,流根被称为”建立新的格式化上下文的元素“,这是对css3-box的一部分的澄清。所以,我认为这可以解决问题。 – BoltClock