Горизонтальное меню по центру
6 февраля 2010 года | Вёрстка

Сегодня речь пойдет о вёрстке меню на сайте. Поставлю несколько целей, которым должно соответствовать наша навигация. Итак:
- Меню должно быть горизонтальным.
- Элемент меню может быть любой ширины.
- Элементы меню должны быть выровнены по центру.
Для вёрстки горизонтальной навигации можно использовать множество способов. Некоторые даже умудряются в небольшое меню вместить громоздкую таблицу. Я сделаю проще, будет немного тегов, а также не особо много стилей, которые отлично кэшируются браузерами.
В конце этой статьи, я оставлю ссылочку на готовый пример. А сейчас всё по порядку. Первым делом нам нужна блочная обвёртка, а внутри неё разместим список, при помощи комбинации тегов ul и li. Внутри списка добавим ссылки, т. к. без ссылок это не меню:
<ul>
<li>
<a href="#">Главная</a>
</li>
<li>
<a href="#">Новости</a>
</li>
<li>
<a href="#">Контактная информация</a>
</li>
<li>
<a href="#">О проекте</a>
</li>
</ul>
</div>
Теперь нам нужно прописать основные стили для обвёртки. Для примера, я сделал его шириной 70% и выровнял по центру экрана, а также скрыл всё лишнее:
width: 70%; /* задаю ширину */
clear:both; /* обтекание */
margin: 100px auto; /* выровняю по центру */
overflow: hidden; /* спрячу лишнее */
background-color: #06c; /* синенький фон */
}

Смотрим глубже, на очереди сам список. Прокомментирую каждую строчку, чтобы было понятно для чего нужен каждый параметр:
height: 30px; /* установим высоту меню */
float:left; /* прижимаем влево */
left:50%; /* смещаем на 50% */
list-style-type:none; /* убираем маркеры */
margin:0 auto; /* выравниваем */
padding:0; /* убираем внутренние отступы */
position:relative; /* пригодится для элементов списка */
}
Дальше у нас элементы списка. Именно в этом месте и задаётся нужное нам позиционирование в центре обвёртки:
float:left; /* прижимаем влево */
position:relative; /* позиционируем относительно родителя */
right:50%; /* интересный момент, отступаем справа на 50% */
}

Осталось только привести в порядок ссылки:
line-height: 30px; /* выравниваю ссылки по высоте */
background-color: #06c; /* синий фон =) */
color: #fff; /* пишу белым */
padding: 2px 5px; /* внутренние отступы для удобства */
margin: 0 10px; /* добавляю отступы между элементами меню */
font-size: 14px; /* размер шрифта */
}
.menu ul li a:hover {
text-decoration: none; /* при наведении убираем подчёркивание */
}
Вот и всё, в итоге мы получаем простое кроссбраузерное горизонтально меню расположенного по центру сайта. При этом, ширина элемента меню может быть любой, в нашем случае зависит от текста ссылки.

И конечно, как и обещал в начале статьи, всё можно оценить в живую, смотрим рабочий пример.
Протестировал в браузерах поддержка: IE6+, FF, Opera 9.62+, Chrome+, Safari 3+. Возможно поддерживают и более ранние версии, но я думаю, на них уже не стоит обращать внимание.
- Сергей
- Дмитрий
- divbyzero
- http://medialworld.com sad
- Твердов Андрей
- Katia
- Selenit
- http://www.facebook.com/people/Kazarinov-Yan/1249220296 Kazarinov Yan
- Sanyok 04
