css, html, php, javascript, jQuery, ajax … – решения, примеры, рецепты
5 Фев
Мы уже пробовали создавать вертикальное текстовое меню на основе списка. Попробуем теперь использовать список для создания горизонтального текстового меню.
Как всегда первый шаг – это создание HTML-разметки.
<ul> <li><a href="/">Главная</a></li> <li><a href="products.html" id="current">Продукция</a></li> <li><a href="gallery.html">Фото</a></li> <li><a href="responses.html">Отзывы</a></li> <li><a href="feedback.html">Контакты</a></li> </ul>
Здесь необходимо обратить внимание на пункт, где встречается id=»current». В реально работающем меню необходимо определять текущую страницу при ее загрузке и присваивать этот id соответствующему пункту.
А теперь приведу таблицу стилей для организации этого списка в горизонтальное меню.
ul {
padding:3px 0;
margin-left:0;
border-bottom:1px solid #003;
font:bold 8pt Verdana, sans-serif;
}
ul li {
list-style:none;
margin:0;
display:inline;
}
ul li a {
padding:3px 0.5em;
margin-left:3px;
border:1px solid #003;
border-bottom:none;
background-color:#FFA6BD;
text-decoration:none;
color:#AD2039;
}
ul li a:hover {
background-color:#AD2039;
color:#FFA6BD;
}
ul li a#current {
background-color:#fff;
border-bottom:1px solid #fff;
}
Ничего особенно хитрого тут нет. Сначала зададим отступы и левое поле для элемента ul, там же определяем нижнюю рамку для всего элемента и шрифт, а вот затем начинается более интересное правило. Для ul li мы скрываем стандартные маркеры, полям задаем значение 0 и наконец display:inline; – вот что заставляет наш список «вытянуться» в строку.
Дальше описываем элемент a, задавая ему отступы, поля, рамки, определяя цвет фона и шрифта. Обращу внимание разве что на определения свойства border. Сначала заданы значения свойства border для всех четырех сторон, а в следующей строке мы пишем border-bottom:none;, т.е. отменили рамку снизу. Такой вариант написания вполне имеет право на существование.
Далее определяем стили элемента а при наведении на него указателя мыши – тут мы изменим только цвет фона и цвет текста.
И самое последнее – стили для элемента имеющего id=»current». Цвет фона задаем совпадающим с цветом основного фона страницы, как впрочем и цвет нижней рамки.
Вот, что у нас получилось в итоге.
Отзывов (9) на «CSS: создание горизонтального текстового меню на основе списка.»
Глючит в Опере 9.20
Глючит как? Я вот сейчас смотрю в Опере 9.24 – все в порядке. Кстати, для себя давно взял за правило: когда что-то тестирую – сначала чищу кэш. Попробуйте…
Есть ли преимущества этого способа перед
(html)
<a href="/">Главная</a>
<a href="gallery.html">Фото</a>
<a href="responses.html">Отзывы</a>
<a href="feedback.html">Контакты</a>
(css)
a {display:block;float:left;padding:…}
?
В данном примере присутствует ошибка юзабилити. Если юзер уже находится на странице Продукция, то мы не должны давать ему возможность кликать по ссылке Продукция.
тут пример работы скрипта, а как уж его сделает пользователь, и будет ли он юзабилитен это дело каждого, пример забираю, но все еще ищю аналог со стрелками по бокам, чтобы листать, если меню длинное
а как сделать чтоб ID менялся? что то не получается(((
Все конечно наверно, работает, но облазил все и у меня не работае не с инлайном не с флоат лефт, я даже знаю в чем проблема но решить не могу
суть проблемы в том что у меня 3 списка все разные
1 одной картинкой вместо точки вертикальный
2 с другой картинкой вместо точки тоже вертикальный
3 список в нем вся проблема то и заключается нужно чтобы он был горизонтальным и для этого нужно увеличить его важность по отношению к тем 2-ум с помощью !important в цсс, но у меня ну никак не получается прочитал уже все…. автор если есть какието мысли отпиши на мыло
Вообще нигде, и ни в одном браузере не работает. Появляется вертикальное меню, это просто ссылки без всего, а вверху кодировка, что у вас во второй таблице. Наверное, я делаю что-то не так. Подскажите пожалуйста.
Александр, скорее всего не правильно подключили таблицу стилей, то есть путь к css файлу содержит ошибки. Вообще используйте хром, там есть замечательная вещь как «просмотр кода элемента», и можно сразу определить применяется ли стиль или нет, или же переопределяется в каком либо месте.
Оставьте отзыв