0

我正在设置一个由DL块组成的菜单,每个块都包含某些选项。

这些DLs 都有不同的高度,尽管它们都保持相同的宽度,所以我可以一次装两个。这些DLs 包含在一个div区域内。

我正在尝试做的是,当一个块明显比另一个块长时,排队的下一个块将挤到一侧并出现在其下方块的下方。

<div id="contentarea">
    <dl>This Dl has one DT and two DDs in it, one per line.</dl>
    <dl>This DL has one DT and six DDs in it, one per line.</dl>
    <dl>This DL has one DT and four DDs in it, one per line.</dl>
</div>

这个想法是,由于第二个DL占用更多的垂直空间,第三个DL会自动将自己推到右侧并占据第一个下方的空间DL。如果这第三个DL 会使左侧比右侧长,那么下一个 L 会向右DL走。如果相同或更少,则再次向左移动,直到超过右侧。

我会注意到,我试图不将DLs 定义为具有不同的类。

在我的 CSS 中,我将我DL的 s 定义为displayas inline-block,因为这只是inline导致它们实际上没有正确使用右侧,而只是d在它之前的一个下方显示每个 l。

但是inline-block,他们所做的只是制作单独的行而不填充一些DLs 之间的空间。有了inline-block,他们现在也使用右侧,但是当第三个进来时,它会下降到最长点以下,而不是像我想要的那样尝试填充下一个直接点。

4

1 回答 1

0

为什么要使用 DL?

听起来你想要的效果可以用masonry.js来实现

http://masonry.desandro.com/

看一看。

于 2013-08-11T07:22:22.357 回答