CSS循环布局列

时间:2012-06-01 06:02:16

标签: html css

我有一个这样的清单:

<ul>
  <li>A</li>
  <li>B</li>
  <li>C</li>
  <li>D</li>
  <li>E</li>
  .... etc ....
</ul>

而不是像

那样结束
A
B
C
D
E
...

我希望它最终会出现在这样的列中:

A      B      C
D      E      F
G      H      I
....  etc  (ordered alphabetically)

如果我必须用服务器端语言执行此操作,我会执行类似创建三个数组的操作,每个列一个,并遍历每个项目,将其放在正确的列中,但是更容易用CSS3做的方法吗?

非常感谢!

4 个答案:

答案 0 :(得分:6)

使用此CSS:

li {
    display: inline
}

li:nth-child(3n):after {
    content: '\a';
    white-space: pre;
}

演示:http://jsfiddle.net/3UN4f/1/

首先我将列表项内联,然后\a插入一个换行符。以下是该规范:http://www.w3.org/TR/CSS2/syndata.html#stringsnth-child是CSS3:http://www.w3.org/TR/css3-selectors/#nth-child-pseudo

答案 1 :(得分:2)

我有两种方式:

  1. 使用<table>以获得列
  2. 为您的元素设置此CSS:
  3. li {
       width: 100px;
       float: left;
    }
    ul { width: 320px; }

答案 2 :(得分:1)

我不认为这可能是合适的,但请查看demo fiddle

答案 3 :(得分:1)

您有不同的选择:

  1. Multicolumn-Layout(atm对浏览器的支持不是很好) - the specs
  2. float:leftwidth:100%/<no of cols>(3列= 33%)放在li - 元素
  3. :nth-child(<no of cols>)后通过content在伪元素上暂停。
  4. 如果您有表格数据:使用表格