Решение Дуга хорошо, если вы хотите разделить список на подсписки.
Вместо этого я решил расположить элементы списка, не меняя дом.
Это немного запутанно, в основном это ставит левое поле для каждого элемента, который является номером столбца, умноженным на ширину столбца.
Это приведет к расположению лестницы, поэтому следующим шагом было добавление некоторого отрицательного верхнего поля, чтобы поднять каждый элемент вверх.
В основном это отображается в виде сетки. Я использую это для выпадающих меню, чтобы оно работало хорошо. Избегайте использования этого, если вам нужно, чтобы каждый элемент списка имел динамическую высоту. Переменная col_height может быть установлена на высоту самого большого элемента, чтобы сделать код немного более универсальным.
var col_max_height = 6; //Max Items per column
var col_width = 200; //Pixels
var col_height = 33; //Pixels
$('.header ul li ul').each(function() {
$(this).find('li').each(function(index){
column = parseInt(index/col_max_height);
$(this).css('margin-left', column * col_width + 'px')
if(column > 0) {
$(this).css('margin-top', (index - (col_max_height * column) + 1) * -col_height + 'px').addClass('col_'+column);
}
});
});