HTML может быть (на самом деле не имеет значения):
<div class="3col_vert">
<div>a</div>
<div>b</div>
<div>c</div>
<div>d</div>
...
</div>
В javascripts (в частности, в jquery) вы должны обернуть их в cols, чтобы результирующий html (после манипулирования javascript) стал:
<div class="3col_vert">
<div class="col_left">
<div>a</div> ...
</div>
<div class="col_centre">
<div>e</div> ...
</div>
<div class="col_right">
<div>g</div> ...
</div>
</div>
JQuery для mainpulate будет:
var vert_divs = $(".3col_vert div");
// Remove them from parent
$(".3col_vert").empty()
.append("<div class='col_left'></div>") // append the wrapper cols to parent
.append("<div class='col_center'></div>")
.append("<div class='col_right'></div>");
// Now place them to the wrappers
var totalDivs = vert_divs.length; // count number of match divs
vert_divs.each(function(i) {
if (i < totalDivs / 3)
$(this).appendTo(".3col_vert div.col_left");
else if (i<totalDivs * 2/3)
$(this).appendTo(".3col_vert div.col_center");
else
$(this).appendTo(".3col_vert div.col_right");
});
Приведенный выше код не слишком оптимизирован (я уверен, что многие лучшие алгоритмы могут это сделать), но идея в том, что вы используете javascript для манипулирования html во что-то вроде вышеупомянутого, помещая первую 1/3 в левую колонку, вторая 1/3 к центру, а остальные в правую. Последняя задача - использовать CSS, чтобы разделить их на 3 столбца, которые я не буду здесь рассматривать, но есть множество учебных пособий, например, , этот является одним из таких примеров.