html – 如何使浮动DIV列表出现在列中,而不是行

我手上有一个 HTML布局拼图.我有一个由我的 PHP应用程序生成的大型字母列表,我需要在网页上输出它.生成标记如下所示:
<div class="list_item">A</div>
<div class="list_item">B</div>
<div class="list_item">C</div>
<div class="list_item">D</div>
<div class="list_item">E</div>
<div class="list_item">F</div>
<div class="list_item">G</div>
<div class="list_item">H</div>
...

样式表如下所示:

.list_item {
    margin: 5px;
    padding: 5px;
    border: 1px solid gray;

    width: 200px;
    float: left;
}

渲染结果:

正如你所看到的,这不是很易读,我希望DIV可以输出两列,所以第一列包含“A B C D”,第二列包含“E F G H”.

有没有办法做到这一点,而不改变标记?为偶数和奇数div添加不同的类是可能的,但由于div是在循环中输出的,因此不能以不同方式对它们进行拆分.

观看演示:http://jsfiddle.net/KZcCM/

注意:我已经通过PHP将列表拆分为两部分来解决它,但我想知道,如果这里有HTML / CSS解决方案.

解决方法

根据您需要支持的浏览器,您可以使用新的CSS3 column-count属性.

用简单的列表标记

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

使用这个CSS:

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

Here is a fiddle – 虽然在任何版本的IE中都不支持它.为了支持旧版浏览器,你可以使用jQuery解决方案,例如Columnizer jQuery Plugin,或者代替CSS3解决方案,

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些