Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
182
Добавлен:
10.05.2015
Размер:
637.95 Кб
Скачать

Горизонтальные списки

Одним из наиболее распространенных изменений, требуемых при работе со списком, является создание горизонтального списка - то есть, вывод пунктов списка рядом друг с другом, а не один под другим. Это обычный прием при создании навигации сайта. Давайте воспользуемся примером из статьи о навигационных меню (см. рис. 32.14):

Рис. 32.14.  Простой список

Давайте преобразуем его в горизонтальный список, как показано на рис. 32.15:

Рис. 32.15.  Простой горизонтальный список

Чтобы добиться этого, необходимо сделать со списком три вещи:

  • Удалить margin и padding из <ul>

  • Задать для пунктов списка display: inline;

  • Задать для пунктов списка некоторый пробел справа, чтобы избежать их слипания

В этом примере список имеет ID "mainmenu", поэтому будем использовать его в качестве контекстного селектора, чтобы гарантировать, что изменяется только тот список, который должен быть изменен. Код CSS имеет вид:

#mainmenu {

margin: 0;

padding: 0;

}

#mainmenu li {

display: inline;

padding: 0 1em 0 0;

}

В этом простом примере задание для пунктов меню display: inline; будет достаточно; знайте также, что использование float: left; создает аналогичный вид. Мы познакомимся больше с плавающими элементами позже в курсе.

Ложные столбцы

Ранее мы создали список лент RSS. Теперь давайте представим, что список был помещен в боковую панель сайта. Дизайнер хочет, чтобы список выводился двумя столбцами и с границей вокруг всей группы, как показано на рис. 32.16.

Рис. 32.16.  Список лент в двух столбцах с иконкой RSS в качестве маркера

Давайте предположим, что список находится в элементе <div>, который задает ширину и границу. Базовый список будет выглядеть примерно как на рис. 32.17:

Рис. 32.17.  Неоформленный список внутри границы

Добавим сначала иконку RSS, как было показано ранее; затем добавим поле 5px сверху, справа и слева:

.rss {

margin: 5px 5px 0 5px;

padding: 0;

}

.rss li {

list-style-type: none;

background: #fff url("icon-rssfeed.gif") 0 3px no-repeat;

padding: 0 0 5px 15px;

}

Нам не нужно добавлять нижнее поле, так как последний пункт списка будет добавлять правильный интервал своим заполнением, как видно на рис. 32.18:

Рис. 32.18.  Полпути пройдено - мы имеем теперь правильный интервал и иконки маркеров

Теперь зададим для пунктов списка display: inline-block;, и зададим их ширину как 40%, а правое поле как 2% (можно использовать также ширину в пикселях). Необходимо также явно задать для <ul> ширину 100%, чтобы гарантировать, что список правильно заворачивается и измеряется:

.rss {

margin: 5px 5px 0 5px;

padding: 0;

width: 100%;

}

.rss li {

display: inline-block;

width: 40%;

margin: 0 2% 0 0;

list-style-type: none;

background: #fff url("icon-rssfeed.gif") 0 3px no-repeat;

padding: 0 0 5px 15px;

}

В большинстве браузеров этого будет достаточно для создания эффекта столбцов, но нужно будет явно настроить в браузере IE смещение пунктов списка влево. Давайте воспользуемся условным стилевым оформлением для всех версий до IE7 (так как мы еще не знаем, что будут делать будущие версии):

<!--[if lte IE 7]>

<style type="text/css">

.rss li {

float: left;

}

</style>

<![endif]-->

Мы имеем теперь требуемый двухстолбцовый результат, как видно на рис. 32.19:

Рис. 32.19.  Готовый список