Расскажу про использование CSS multi-column layout module. Допустим у нас есть многоуровневый список.
Для основного содержимого страницы он узковат, и возникает желание выводить его в несколько колонок. Для этого используем CSS-свойства column-count: 4 и column-gap: 10px. Первое задает на сколько колонок разбить контент, второе — какой между ними зазор.
Плохо выглядит вторая колонка, потому что при переносе не учлась вложенность списков. Это решается с помощью свойства page-break-inside: avoid. Оно регулирует «разрывы страницы». В примере я запретил разрывы внутри li-элементов списка верхнего уровня.
Полный код и демо можно посмотреть здесь.
Column-count и column-gap работают как минимум в Firefox 3.6 (с префиксом -moz) и Opera 11.50.
Page-break-inside в Firefox 3.6 не работает, а в Opera 11.50 работает.
Предлагаю вам развить тему, потестировав пример в других браузерах или как-нибудь усложнив верстку списка. Демо можно форкать, ссылки оставляйте в комментариях.
Комментарии
myblaze, 05.10.2011 10:43
В опере 11.51, не смотря на column-count: 4, выводит в 3 столбца и выглядит это отлично. В в хроме 14.0.835.187, выводит в 4 столбца и поэтому 2 последних пункта России вылетают на второй столбик и все начинает немного съезжать.
Дмитрий Сергеев, 05.10.2011 23:25
Cпасибо, значит, в хроме page-break-inside: avoid не работает.
NMitra, 07.10.2011 20:35
Мне понравился этот инструмент - http://debray.jerome.free.fr/index.php?outils/Generateur-de-multi-colonn....