0

我有一个包含数千个 li 项目的 ul 列表。发生的情况是我有一个固定的宽度,但高度可变的 li 取决于它们内部的内容,例如评论、图像等。

现在我的列表水平流过用户的屏幕并转到新行。但是,问题是下一行的第一个 li 不位于前一行的第一个 li 旁边,而是占据上一行的最长 li 并停留在其下方。

例如, http: //oi47.tinypic.com/21kgqkw.jpg

这可以做到吗?

根据克里斯的要求更新 1:请看我的照片,你会明白的。基本上,所有的 lis 都需要从一行到另一行垂直保持靠近

4

2 回答 2

2

根据您提供的有限信息,该li标签可能不适用于此处。相反,您可以使用articleor div。如果您确实使用列表项,则评论列表作为 . 更有意义ol,因为评论具有自然顺序(它们离开的日期/时间)。

标签不是这里的问题,只是一个注释。

对于手头的问题:根据您的示例图像,砌体可能是您最好的路线:

Masonry 是一个动态网格布局脚本。将其视为 CSS 浮动的另一面。浮动将元素水平排列然后垂直排列,而砌体垂直排列元素,将每个元素定位在网格中的下一个开放点。结果使不同高度的元素之间的垂直间隙最小化,就像石匠在墙上安装石头一样。

这个插件有一个香草jQuery版本。

于 2012-07-10T16:18:38.957 回答
2

没有简单的方法可以像在纯 html/css 中那样实现垂直流,但是有一个 jquery 插件可以做类似的事情。你应该看看砌体

查看基本单列演示

于 2012-07-10T16:17:48.447 回答