如何将列表项显示为列?

Gro*_*oan 63 css listview list vertical-alignment

我正在尝试构建我的第一个响应式布局.我想在垂直线中显示列表项,具体取决于宽度.

<div style="height:800px;">
    <ul>
       <li>1</li>
       <li>2</li>
       <li>3</li>
       <li>4</li>
       <li>5</li>
       <li>6</li>
       <li>7</li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)
1   5
2   6
3   7
4

如果浏览器调整大小,我希望它成为

1  4  7
2  5
3  6

有人能帮我吗?我已经尝试了几个小时,我什么都得不到.我尝试过使用表格,但我也不能这样做.

Chr*_*ris 92

这可以很容易地使用CSS3列完成.这是一个例子,HTML:

#limheight {
    height: 300px; /*your fixed height*/
    -webkit-column-count: 3;
       -moz-column-count: 3;
            column-count: 3; /*3 in those rules is just placeholder -- can be anything*/
}

#limheight li {
    display: inline-block; /*necessary*/
}
Run Code Online (Sandbox Code Playgroud)
<ul id = "limheight">
 <li><a href="">Glee is awesome 1</a></li>
 <li><a href="">Glee is awesome 2</a></li>
 <li><a href="">Glee is awesome 3</a></li>
 <li><a href="">Glee is awesome 4</a></li>    
 <li><a href="">Glee is awesome 5</a></li>
 <li><a href="">Glee is awesome 6</a></li>
 <li><a href="">Glee is awesome 7</a></li>
 <li><a href="">Glee is awesome 8</a></li>
 <li><a href="">Glee is awesome 9</a></li>
 <li><a href="">Glee is awesome 10</a></li>
 <li><a href="">Glee is awesome 11</a></li>
 <li><a href="">Glee is awesome 12</a></li>    
 <li><a href="">Glee is awesome 13</a></li>
 <li><a href="">Glee is awesome 14</a></li>
 <li><a href="">Glee is awesome 15</a></li>
 <li><a href="">Glee is awesome 16</a></li>
 <li><a href="">Glee is awesome 17</a></li>    
 <li><a href="">Glee is awesome 18</a></li>
 <li><a href="">Glee is awesome 19</a></li>
 <li><a href="">Glee is awesome 20</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

  • 似乎`display:inline-block;这里不需要``li``. (7认同)
  • http://caniuse.com/#feat=multicolumn - 希望您的观众无论如何都可以使用它; 这显然是最好的解决方案.您还可以为旧浏览器添加垫片 - 谷歌吐出http://www.csscripting.com/css-multi-column/; 虽然没有测试过 (4认同)

SPR*_*BRN 21

如果您看一下以下示例 - 它使用固定宽度列,我认为这是请求的行为.

http://www.vanderlee.com/martijn/demo/column/

如果底部示例与top相同,则不需要jquery列插件.

ul{margin:0; padding:0;}

#native {
  -webkit-column-width: 150px;
  -moz-column-width: 150px;
  -o-column-width: 150px;
  -ms-column-width: 150px;
  column-width: 150px;
  
  -webkit-column-rule-style: solid;
  -moz-column-rule-style: solid;
  -o-column-rule-style: solid;
  -ms-column-rule-style: solid;
  column-rule-style: solid;
}
Run Code Online (Sandbox Code Playgroud)
<div id="native">
  <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    <li>9</li>
    <li>10</li>
    <li>11</li>
    <li>12</li>
    <li>13</li>
    <li>14</li>
    <li>15</li>
    <li>16</li>
    <li>17</li>
    <li>18</li>
    <li>19</li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)


Ina*_*aFK 5

谢谢你这个例子,SPRBRN.它帮助了我.我可以根据上面给出的代码建议我使用的mixin:

//multi-column-list( fixed columns width)
  @mixin multi-column-list($column-width, $column-rule-style) {
  -webkit-column-width: $column-width;
  -moz-column-width: $column-width;
  -o-column-width: $column-width;
  -ms-column-width: $column-width;
  column-width: $column-width;

  -webkit-column-rule-style: $column-rule-style;
  -moz-column-rule-style: $column-rule-style;
  -o-column-rule-style: $column-rule-style;
  -ms-column-rule-style: $column-rule-style;
  column-rule-style: $column-rule-style;
 }
Run Code Online (Sandbox Code Playgroud)

使用:

   @include multi-column-list(250px, solid);
Run Code Online (Sandbox Code Playgroud)