如果一个浮动元素在其他浮动元素下面,它应该如何垂直对齐?

How should a floating element be aligned vertically if it's under other floating elements?

有一个容器容纳四个左浮动的div,其中每个width设置为50%(连续两个)。此外,我为每个 div 添加了一个 top-margin 值,但第一个(通过这个类似于 owl 的选择器 * + *)。

由于第一个 div 内部的文本比第二个少,它们的高度可能导致不同的值(第一个会更小)。在这种情况下,按照我的预期,第三个 div 将在第一个下方找到它的位置,只有它的 top-margin 阻止它接触第一个。相反,我找到了这张图片:

显然,第三个 div 达到了第二个的垂直高度。有人可以详细说明这条规则吗?为什么第三个 div 没有尽可能高地提升(到第一个 div)?

JSFiddle

float:left 布局的逻辑是 - 如果有 space,则放置在前面左侧浮动的右侧,如果没有,则放置在它们的下方。不是 - 填写第一个 space 足够大的方框。

具体原因并不明显。我怀疑它既足以满足目标用例,又足够简单,可以在指定时实施。