我有一个容器div
,里面有 3 个div
,如下所示。
<div>
<div>1</div>
<div>2</div>
<div>3</div>
</div>
我不知道每个div
内部的内容,但它们具有可变的高度和宽度。
容器的高度由最高的div
内部决定。
我想以div
这样一种方式展示它们,即它们首先填充高度(从左到右),然后像下面那样移动到下一列。
+------------------+
|+-------++-------+|
|| || ||
|| || ||
|+-------+| ||
|+-------+| ||
|| || ||
|| || ||
|+-------+| ||
| +-------+|
+------------------+
显然,如果这些div
s 都很大并且不能放在一列中,那么布局将是 3 列,如下所示
+---------------------------+
|+-------++-------++-------+|
|| || || ||
|| || || ||
|| || || ||
|| || || ||
|| |+-------+| ||
|| | | ||
|+-------+ | ||
| +-------+|
+---------------------------+
问题:是否有可能最好只使用 CSS 以及如何做到这一点?
编辑:
- 我需要澄清几件事
- 容器最多可以有 2 或 3 列(从不包含 1 列,并且从不超过 3)。
- 容器的宽度不固定,但所有内部 div 的宽度都相同。
- 容器的高度由最高的内部 div 决定。例如,如果最高的 div 是 300px 容器的高度也将是 300px。
- 另外两个较短的 div 应该决定它们是否可以放在一列中,或者应该显示在两个单独的列中。基于示例(上一项)。
- 另外两个最小的 div 应该决定在一列或两列中。
- 不应包装任何内部 div。
示例:div 高度:第 1 个 300px,第 2 个 100px,第 3 个 150px
结果:这是一个 2 列布局(同一列中的第 2 和第 3)。
示例:div 高度:第一个 100px,第二个 300px,第三个 150px
结果:这是一个 3 列布局。
示例:div 高度:第一个 100px,第二个 200px,第三个 300px
结果:这是一个 2 列布局(同一列中的第一个和第二个)。
示例:div 高度:第一个 100px,第二个 210px,第三个 300px
结果:这是一个 3 列布局。