CSS - 具有动态列包装的单个列表

时间:2012-10-19 17:09:12

标签: css list css3 css-selectors

  

可能重复:
  CSS: Ways to break list into columns on page?

我一直在寻找这个解决方案而无法找到它,所以我想我会发布我最终制作的内容。

我正在尝试构建一个列表,在第5个项目之后,列表将换行并移动到另一列。这样就可以根据用户需要的项目来实现超级动态。

enter image description here

这是我提出的解决方案。

 li{
   position: relative;
   line-height: -6px;
}
    
 ol li:nth-child(6) {
    margin-top: -90px;
}
    
 ol li:nth-child(-n+5){
    margin-left: 0em;
 }
    
 ol li:nth-child(n+6){
   margin-left: 10em;
 }
 <ol>
      <li>Aloe</li>
      <li>Bergamot</li>
      <li>Calendula</li>
      <li>Damiana</li>
      <li>Elderflower</li>
      <li>Feverfew</li>
      <li>Ginger</li>
      <li>Hops</li>
      <li>Iris</li>
      <li>Juniper</li>
 </ol>
    
    
   

这是小提琴:http://jsfiddle.net/im_benton/tHjeJ/

您如何看待我的解决方案? 什么是在IE中可以使用的解决方案?

2 个答案:

答案 0 :(得分:24)

尝试使用以下内容作为@tuff建议。

ol {
    -moz-column-count: 2;
    -moz-column-gap: 20px;
    -webkit-column-count: 2;
    -webkit-column-gap: 20px;
    column-count: 2;
    column-gap: 20px;
}

http://jsfiddle.net/tHjeJ/6/

答案 1 :(得分:0)

如果你只想要两列,那就不那么难了 您可以在列表中尝试这样的事情:

ol{ width:300px;}

li{
  width:50%;  
  float:left;
}​

如果li号除以列号,它实际上会在每列中包含相同数量的列表项。

如果您希望数字与图片类似,您可以为每列使用包装div,然后使用列表中的start属性...它将类似于{ {1}}