如何显示列表项作为列?

我正在尝试构build我的第一个响应式布局。 我想根据宽度以垂直线显示列表项目。

<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> 
 1 5
 2 6
 3 7
 4

如果浏览器resize,我希望它成为

 1 4 7
 2 5
 3 6

有人能帮我吗? 我一直在努力几个小时,我什么也得不到。 我尝试过使用表格,但是我不能这样做。

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

 <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> 

CSS:

 #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*/ } 

和一个小演示: 小链接 。

希望有所帮助!

如果你看看下面的例子 – 它使用固定宽度的列,我认为这是所要求的行为。

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

如果底部示例与顶部相同,则不需要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; } 
 <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> 

谢谢你这个例子,SPRBRN。 它帮助了我。 我可以根据上面给出的代码来build议我使用的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; } 

使用:

  @include multi-column-list(250px, solid); 

根据需要创build一个包含尽可能多的列表元素的列表。 然后把列表放在div中,设置style = column-width和style = column-gap,以匹配列表元素中的信息。 不要设置style = columns。 完全适应屏幕大小的响应列表。 没有插件需要。

你可以使用CSS3来做到这一点。

这是HTML代码片段:

 <ul id="listitem_ascolun"> <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> </ul>