我有一个接一个的10个div,我想在2列中组织。问题是,如果我将它们全部浮动,我会得到这些列:
1 2
3 4
5 6
7 8
9 10
但我希望得到这些专栏:
1 6
2 7
3 8
4 9
5 10
这可以通过css实现吗?如果没有,那么最有效的jquery可以做到这一点? (我不想触摸标记,因为它是由复杂的系统生成的......)
标记很简单:
<div class="item">
...
</div>
<div class="item">
...
</div>
...
答案 0 :(得分:3)
您可以使用column-count
和column-gap
CSS属性。 Mozilla和Webkit都需要前缀,IE10和Opera都不需要。但是,IE&lt; = 9根本不支持。
像
这样的东西.item-parent{
column-count: 2;
column-gap: 20px;
-moz-column-count: 2;
-webkit-column-count: 2;
/*...*/
}
http://www.quirksmode.org/css/multicolumn.html
http://caniuse.com/#feat=multicolumn
或者,为了支持IE9,您可以手动包装两列并适当地设置样式。如果您不想深入了解生成器 - 模板系统应该已经解决了 - 您可以使用Javascript:
$('.item-parent').each(function(){
$items = $('.item', this);
$items.slice(0, ($items.length+1)/2) //split in half, round up
.wrapAll('<div class="item-column">');
$items.slice(($items.length+1)/2)
.wrapAll('<div class="item-column">');
)};
答案 1 :(得分:1)
将您拥有的物品放在两个DIV中,如下所示
<style>
.col{
float:left;
width:50%;
}
</style>
<div class="col">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
</div>
<div class="col">
<div class="item">6</div>
<div class="item">7</div>
<div class="item">8</div>
<div class="item">9</div>
<div class="item">10</div>
</div>
答案 2 :(得分:0)
假设
1 2
3 4
5 6
7 8
9 10
来自你复杂的系统(不确定你真正想说的是什么),你将不得不看看这些div
是如何生成的,我猜,代码中会有非常小的变化来帮助你期望的结果
或者,您可以使用循环来获取所需的结构..