Peramban Modern
memanfaatkan modul kolom css3 untuk mendukung apa yang Anda cari.
http://www.w3schools.com/cssref/css3_pr_columns.asp
CSS:
ul {
columns: 2;
-webkit-columns: 2;
-moz-columns: 2;
}
http://jsfiddle.net/HP85j/8/
Browser Warisan
Sayangnya untuk dukungan IE Anda memerlukan solusi kode yang melibatkan JavaScript dan manipulasi dom. Ini berarti bahwa kapan saja isi daftar berubah, Anda perlu melakukan operasi untuk menyusun ulang daftar menjadi kolom dan mencetak ulang. Solusi di bawah ini menggunakan jQuery untuk singkatnya.
http://jsfiddle.net/HP85j/19/
HTML:
<div>
<ul class="columns" data-columns="2">
<li>A</li>
<li>B</li>
<li>C</li>
<li>D</li>
<li>E</li>
<li>F</li>
<li>G</li>
</ul>
</div>
JavaScript:
(function($){
var initialContainer = $('.columns'),
columnItems = $('.columns li'),
columns = null,
column = 1; // account for initial column
function updateColumns(){
column = 0;
columnItems.each(function(idx, el){
if (idx !== 0 && idx > (columnItems.length / columns.length) + (column * idx)){
column += 1;
}
$(columns.get(column)).append(el);
});
}
function setupColumns(){
columnItems.detach();
while (column++ < initialContainer.data('columns')){
initialContainer.clone().insertBefore(initialContainer);
column++;
}
columns = $('.columns');
}
$(function(){
setupColumns();
updateColumns();
});
})(jQuery);
CSS:
.columns{
float: left;
position: relative;
margin-right: 20px;
}
EDIT:
Seperti yang ditunjukkan di bawah ini akan memesan kolom sebagai berikut:
A E
B F
C G
D
sementara OP meminta varian yang cocok dengan yang berikut:
A B
C D
E F
G
Untuk menyelesaikan varian, Anda cukup mengubah kode sebagai berikut:
function updateColumns(){
column = 0;
columnItems.each(function(idx, el){
if (column > columns.length){
column = 0;
}
$(columns.get(column)).append(el);
column += 1;
});
}