使用下面的HTML,将列表显示为两列的最简单方法是什么?

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

想要显示:

A B
C D
E

解决方案需要与Internet Explorer兼容。


当前回答

与引导……这个答案(https://stackoverflow.com/a/23005046/1128742)让我想到了这个解决方案:

<ul class="list-unstyled row">
   <li class="col-xs-6">Item 1</li>
   <li class="col-xs-6">Item 2</li>
   <li class="col-xs-6">Item 3</li>
</ul>

http://jsfiddle.net/patrickbad767/472r0ynf/

其他回答

我在看@jaider的解决方案,但我提供了一个稍微不同的方法,我认为更容易使用,我已经看到跨浏览器都很好。

ul{
    list-style-type: disc;
    -webkit-columns: 2;
    -moz-columns: 2;
    columns: 2;
    list-style-position: inside;//this is important addition
}

在默认情况下,无序列表显示项目符号的位置,但在一些浏览器中,这将导致一些显示问题,基于浏览器的布局你的网站的方式。

要让它以以下格式显示:

A B
C D
E

等等,使用以下方法:

ul li{
    float: left;
    width: 50%;//helps to determine number of columns, for instance 33.3% displays 3 columns
}
ul{
    list-style-type: disc;
}

这将解决显示列的所有问题。祝你一切顺利,谢谢@jaider,因为你的回复帮助我发现了这一点。

这里有一个可能的解决方案:

代码片段:

ul { 宽度:760 px; margin-bottom: 20 px; 溢出:隐藏; Border-top: 1px实心#ccc; } 李{ 行高:1.5 em; Border-bottom: 1px实体#ccc; 浮:左; 显示:内联; } #双里{ 宽度:50%; } < ul id = "双" > <李>第一李< / > <李>第二李< / > <李>第三李< / > <李>第四李< / > < / ul >

这就完成了。 对于3列使用里宽为33%,对于4列使用25%,依此类推。

我喜欢现代浏览器的解决方案,但缺少子弹,所以我添加了一个小技巧:

http://jsfiddle.net/HP85j/419/

ul {
    list-style-type: none;
    columns: 2;
    -webkit-columns: 2;
    -moz-columns: 2;
}


li:before {
  content: "• ";
}

这对我来说是一个完美的解决方案,我找了很多年:

http://css-tricks.com/forums/topic/two-column-unordered-list/

我试着把这作为评论发布,但不能让列显示正确(根据你的问题)。

你需要:

A B

C D

E

... 但作为解决方案的答案将返回:

A D

B E

C

... 所以要么答案不正确,要么问题不正确。

一个非常简单的解决方案是设置<ul>的宽度,然后浮动并设置<li>项的宽度,如下所示

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

ul{
    width:210px;
}
li{
    background:green;
    float:left;
    height:100px;
    margin:0 10px 10px 0;
    width:100px;
}
li:nth-child(even){
    margin-right:0;
}

例如http://jsfiddle.net/Jayx/Qbz9S/1/

如果你的问题是错误的,那么前面的答案适用(与JS修复缺乏IE支持)。