in.uCoz.org - создан в помощь uCмастеру и служит для решения проблем возникших у пользователей администрирующих сайты системы uCoz. Все вопросы пишите на форуме в соответствующий раздел
Сегодня мы будем создавать простое горизонтальное меню с помощью CSS. Для начала мы создадим скелет меню на HTML, и усвоим главные навыки создания горизонтальных меню. После чего мы придадим красивый вид для меню, используя CSS. Как известно, корифеи верстки, предпочитают семантику, от которой мы постараемся не отступать.
По html структуре объяснять нечего, простой UL список. Как упоминалось раньше, семантика соблюдается. Семантика – это когда html тег соответствует содержимому. Если разделы меню сделать DIV блоками, это не будет семантикой. Равнозначные элементы должны быть списком. Посмотрим, что у нас получилось на данном этапе:
UL элемент является блочным, поэтому его ширина будет 100% (на всю ширину страницы). LI также блочный элемент, а вот A – не блочный. Убедиться в этом можно с помощью наложения рамки в css стиле блока – border:1pxsolid #f00; Мне часто приходиться пользоваться этой хитростью, чтобы видеть границы элементов.
CSS код меню
Для придания этому меню горизонтального положения, выравнивания по центру и соответствующего вида, напишем следующий CSS код:
Разберем все поэтапно, до каждой мелочи: #menu {…} – С помощью этого выражения мы присваиваем стили для UL элемента, у которого id=menu. list-style:none; – убираем маркеры (пульки), слева от каждого элемента в списке. width:500px; – ширина меню 500 пикселей. margin:auto; – выравнивает меню по центру страницы. Если не будет указана ширина, то выравнивания не произойдет, поэтому предыдущий параметр обязателен. padding:0; – устанавливаем нулевые внутренние отступы. То есть убираем их вообще. Если не знаете что это дает, установите их в 20px и посмотрите, что измениться. #menuli {…} – присваиваем стили для LI элементов. float:left; – обтекание элемента по левой стороне. Это выражение придает меню горизонтального положения. font:bold 14pxArial; – устанавливаем стиль для текста в самой короткой форме, bold – жирный текст, 14px – размер шрифта в пикселях, Arial – тип шрифта. #menua {…} – присваиваем стили для A элемента (ссылки). color:#666; – темно-серый цвет шрифта. display:block; - делаем элемент блочным. Это даст возможность присваивать высоту для элемента. В практическом аспекте, это делает кликабельным не только текст ссылки, ни и поле вокруг текста. height:40px; – высота меню будет 40 пикселей. line-height:36px; – высота верхней линии над текстом. Это дает возможность задавать вертикальное положение текста внутри блока. Мы используем это для выравнивания текста в вертикальном направлении. padding:0px 10px 0px 10px; – делаем внутренние отступы слева и справа по 10 пикселей. background:#eee; – устанавливаем серый цвет фона для элементов меню. text-decoration:none; – убираем линию подчеркивающую ссылку. #menua:hover {…} – присваиваем стили для A элемента при наведении на нее мышки. color:#fff; – меняем цвет текста на белый. background:#888; – цвет фона меняем на темно серый.
Доработка горизонтального меню CSS Это все, что касается основ создания горизонтальных меню на CSS. Далее мы придадим красивый вид нашему меню. Для этого мы присвоим для a элементаbackground:url(background.png) repeat-x; для a:hover другой фонbackground:url(hover.png) repeat-x; Ниже предоставлены исходные картинки.
background.png - hover.png - Теперь меню имеет немного иной вид:
Это самое простое горизонтальное меню на CSS, которое вы можете использовать как основу для разработки меню для своего сайта. Также можете посмотреть как создать выпадающее горизонтальное меню на css. Надеюсь, статья была полезной и понятной. Если остались вопросы или недопонимания по поводу горизонтальных меню, смело пишите в комментарии.
P.s. "выпадающее горизонтальное меню" будет позже.
Сообщение отредактировал Reactor - Пятница, 17.01.2014, 10:20
Prosvetekvator, это не я писал Я по нему учился и записал его детально в планшет давно еще, решил других научить. А автор "SiteAr" если не ошибаюсь. Я мог бы своими словами, но зачем придумывать заново велосипед?) Я лучше другие уроки напишу, которых у меня нет в планшете)