Достаточно интересный способ организации обычного маркированного списка в две колонки.
Имеется определенное количество элементов
списка 1
li
. Нужно организовать все 1
ul
в две колонки. Первое, что приходит на ум - это воспользоваться новыми правилами CSS3.1
li
Но проблема в том, они новые и не всеми браузерами поддерживаются. Тогда смысл их применять? Но можно воспользоваться CSS2 и этот способ был случайно мною “подсмотрен” на сайте Loco.ru у автора dIrm. Мною этот способ был немного доработан и помещен у себя в качестве копилки.
Итак, имеется обычный маркированный список в виде HTML-разметки. Количество элементов
я специально сделал нечетным:1
li
Сделаем CSS-стилизацию списка, ничем не примечательную. Класс
добавим в HTML-разметку для элемента 1
.clearfix
- это классическая очистка потока для плавающих потомков внутри блока-родителя. Элементы 1
ul
у нас будут плавать внутри 1
li
:1
ul
Вот теперь немного интереснее, когда приступим к элементу
. Вся “фишка” в организации их в два столбца благодаря двум CSS-правилам - 1
li
и 1
display: block
.1
width: 45%
Все элементы сделаем плавающими влево
, поэтому CSS-правило 1
float: left
можно опустить за ненадобностью, но оставим его для наглядности примера. Получается, что каждый из элементов 1
display: block
является блочным, с фиксированной шириной и плавает влево.1
li
В результате все эти элементы располагаются “по порядку”. “Колонка 1” в левом верхнем углу, следом за ним - “Колонка 2”. “Колонка 3” не вмещается по ширине в область блока-родителя, поэтому располагается под “Колонка 1”. Далее - опять все по порядку. Три правила
, 1
padding-bottom: 10px
, 1
text-align: center
- для красоты добавляем:1
background-color: #556677
Ну и в конце еще несколько штрихов для придания полной иллюзии двухколоночного текста. Здесь воспользуемся правилом
с аргументом 1
nth-child
, чтобы избежать дополнительной нагрузки на разметку в виде классов, которые придется добавлять в противном случае:1
even
На этом все.