溢出:隐藏的容器不包含浮动的相邻元素

Overflow: hidden container doesn't contain floated adjacent element

我的 overflow: hidden 容器本身不包含相邻的浮动元素(橙色框)。

浮动元素位于容器(部分)旁边。但是当我删除 overflow:hidden 时,相邻的浮动元素将进入容器内部并尊重容器的浮动子元素。

为什么会这样?它与块格式化上下文有什么关系吗?

也许当我为容器应用 overflow: hidden; 时,它会触发一个新的 BFC,并且只会包含它的子元素而不会包含相邻的浮动元素?

这是一个fiddle

我想你已经知道答案是BFC了。 :)

如果你放置溢出(除了可见的),那么它会创建一个新的块格式化上下文,它不会让容器邀请到相邻的浮动元素中。

这就是为什么如果你保留 overflow: hidden 橙色 div 会放在容器旁边。

看看这个:

CSS overflow:hidden with floats

BFC info