Html 什么';这句话背后的逻辑是什么;“新块格式上下文”;“解决方案”;我想让这些浮子由它们的父母包装;图案

Html 什么';这句话背后的逻辑是什么;“新块格式上下文”;“解决方案”;我想让这些浮子由它们的父母包装;图案,html,css,Html,Css,我一直很难弄清楚块格式上下文到底是什么 我读过CSS规范,但对我来说没有意义 所以如果考虑到这个经典问题 .container{ 背景颜色:绿色; 边框:实心1px黑色; } .货柜组{ 浮动:左; 宽度:20%; 背景颜色:浅绿色; } 兄弟姐妹 兄弟姐妹 短语“盒子的包含块”表示“盒子所在的包含块”,而不是它生成的块 换句话说,显示的浮动div具有.containerdiv元素的包含块,在该块内部,它们已从正常流中删除 下一部分有点棘手,我不知道为什么会这样做,但这里是做了什么。虽然没

我一直很难弄清楚块格式上下文到底是什么

我读过CSS规范,但对我来说没有意义

所以如果考虑到这个经典问题

.container{
背景颜色:绿色;
边框:实心1px黑色;
}
.货柜组{
浮动:左;
宽度:20%;
背景颜色:浅绿色;
}

兄弟姐妹
兄弟姐妹
短语“盒子的包含块”表示“盒子所在的包含块”,而不是它生成的块

换句话说,显示的浮动div具有
.container
div元素的包含块,在该块内部,它们已从正常流中删除

下一部分有点棘手,我不知道为什么会这样做,但这里是做了什么。虽然没有宽度定义的div永远不会溢出(它的宽度将始终是其内容宽度的100%),但在涉及浮点时使用
overflow:hidden
,会产生一些无声的影响

表的边框框、块级替换元素或正常流中建立新块格式上下文的元素(例如具有“溢出”而非“可见”的元素)不得与元素本身所在的相同块格式上下文中的任何浮动的边距框重叠。-

此处“不得重叠”规则的结果是,在“正常流程中的块级、未替换元素”的边缘情况下,必须调整包含框的高度

此外,如果元素有任何浮动子体,其底部边距边缘低于元素的底部内容边缘,则高度将增加以包括这些边缘。仅考虑参与此块格式上下文的浮点,例如绝对定位子体内的浮点或其他浮点不考虑。-


基于此,
.container
div的高度被扩展,以覆盖浮动嵌套的div元素,并显示您看到的差异。

为什么它们没有完全脱离流?
更准确地说,float并没有完全脱离流。。。它们仍然是流程的一部分。。。[指定元素应沿其容器的左侧或右侧放置,允许文本和内联元素环绕。该元素已从网页的正常流中删除,但仍然是流的一部分]好的,我想我明白了区别。但是,如果父对象没有建立新的块格式上下文,为什么浮动没有包装在父对象中呢。。创建一个新的块格式化上下文是修复浮动的一种方法,但它与清除完全不同。。。浮动始终保持浮动,但在新的格式化块内。。你可以读这个