如何为列表指定特定高度,以便它们移动到旁边的新列中?

时间:2012-08-23 09:44:21

标签: html css html-lists

是否可以给出一个特定高度或类似的列表(< ul>),如果有太多,它只是将项目(< li>)移动到新列中?

我在这里说明了一遍:

http://oi47.tinypic.com/2dqj5gg.jpg

红色框具有特定高度。如果项目数量多于可用空间,则应该简单地将它们移动到下一行,就像我的示例中的“List7,List8,List9”一样

3 个答案:

答案 0 :(得分:1)

使用CSS列计数,如下所示:

ul {
    -moz-column-count: 2;
    -webkit-column-count: 2;
    column-count: 2;
}​

虽然它不受普遍支持,但受到挑战的浏览器只会忽略它。对于他们来说,你必须做一些非语义的事情,比如手动将它分成多个UL并浮动它们或同样可怕的东西。

答案 1 :(得分:1)

快速的方法是float您的li代码,如下所示:

ul
{
    height: 100px;
    border: 1px solid #f00;
}

li
{
    float: left;
    border: 1px solid #0f0;
    width: 50px;
}

但是这会给你以下结构:

List1    List2    List3
List4    List5

如果您特别需要提供的图像中的结构,那么您可能需要使用jQuery查看一些动态渲染以获得完整的浏览器支持。

Example jsFiddle

答案 2 :(得分:1)

是的,您可以使用column-count

ul {
    -moz-column-count: 3;
    -webkit-column-count: 3;
    column-count: 3;
    height: 60px;
    width: 300px;
}

虽然并非所有浏览器都支持此功能。你可以使用javascript插件进行polyfill,或者只使用渐进式增强(毕竟它是一个列表)。

http://jsfiddle.net/ASDkz/