HTML CSS стиль меню UL
Небольшой вопрос о том, как добиться некоторого стиля в меню HTML / CSS UL.
У меня есть стандартное меню UL, но у меня есть некоторые проблемы с тем, чтобы понять, как добиться определенного внешнего вида стиля. Здесь показано меню UL в его нынешнем виде:
http://jsfiddle.net/WMQqt/
(HTML)
<ul>
<li><a href="#">CONTACT US</a>
</li>
<li><a href="#">HOME</a>
</li>
</ul>
(CSS)
#nav { list-style: none; margin-bottom: 10px; */ margin-top: -6px; position: relative; right: 286px; z-index: 9; height: 26px; padding: 4px 4px 4px 4px; font-weight: bold; } #nav li { float: right; margin-right: 10px; } #nav a { display: block; padding: 5px; color: #444444; background: #fff; text-decoration: none; border: 1px solid grey; } #nav a:hover { color: #fff; background: #04B431; }
Я бы хотел, чтобы кнопки меню имели небольшую рамку в 1 пиксель, но затем некоторое заполнение белого пространства примерно в 3 пикселя до начала цвета фона.
Похоже на то, как это выглядит:
http://jsfiddle.net/6PY7z/
Можно ли это сделать с помощью метода меню UL?
Спасибо за любой совет, я не специалист по HTML / CSS.
html css html-listsПоделиться Источник Harry 15 марта 2013 в 11:19
3 ответа
- HTML UL CSS пограничный стиль
У меня есть небольшой вопрос относительно html-списков и CSS. Я хочу иметь список (whit sublist), который выглядит следующим образом (просмотр результата, копируя код в http://htmledit.squarefree.com/ ): <style type=text/css> ul { border: 0px solid #90bade; } li { list-style-type:none;…
- Изменить стиль ul onclick — css/jquery
У меня есть это простое меню с некоторыми <ul> s, которые загружают его содержимое onclicking на него. И я хочу изменить стиль каждого ul при загрузке контента, который ему принадлежит. Вот меню: http://jsfiddle.net/EPvGf/11 /
6
Добавьте тег margin
в a
и переместите границу в li
#nav li
{
float: right;
margin-right: 10px;
border: 1px solid grey;
}
#nav a
{
display: block;
padding: 5px;
color: #444444;
background: #ccc;
text-decoration: none;
margin:3px;
}
DEMO
Поделиться Sowmya 15 марта 2013 в 11:21
2
вы можете использовать следующие стили для достижения желаемого:
#nav li
{
float: right;
margin-right: 10px;
border: 1px solid grey; /*put original border here*/
}
#nav a
{
display: block;
padding: 5px;
color: #444444;
background: #d8d8d8; /*new background-color*/
text-decoration: none;
border: 3px solid white; /*add white padding here*/
}
http://jsfiddle.net/WMQqt/4/
Поделиться Pete 15 марта 2013 в 11:27
0
ладно
в html го
<dl><div><dt>F</dt><dd>T</dd></div>
<div><dt>F</dt><dd>T</dd></div>
<div><dt>F</dt><dd>T</dd></div>
<div><dt>F</dt><dd>T</dd></div>
</dl>
в css
dl { display: flex;
flex-direction: column;}
несколько намеков…
dt float слева AND dd float справа
Поделиться xoxo_tw 01 декабря 2018 в 22:31
- Стиль <select> меню с использованием только CSS/CSS3
Я хочу знать, почему мы не можем стилизовать меню выбора(а не выпадающее меню), используя только CSS, как мы можем стилизовать кнопки или флажки. Я сталкивался со многими статьями, которые стилизовали их, но они использовали Javascript маниакально, чтобы имитировать поведение select в своих…
- CSS меню (скрыть UL)
Я новичок в CSS и пытаюсь создать меню, в котором подсписок виден (и занимает место) только при наведении курсора. Я нашел свойство visibility:collapse; , но оно только маскирует подсписок и оставляет большой зияющий пробел в моем вертикальном меню. Вот что у меня есть до сих пор, но я не уверен,…
Похожие вопросы:
CSS меню UL/LI не центрируется
Мое меню CSS UL, кажется, не хочет центрироваться, есть идеи? Я вставил код ниже для вашего обзора, я довольно новичок в CSS, так что ваша помощь очень ценится 🙂 Единственный способ, которым я…
Css и jquery стиль меню ul и li
present output output needed css файл скопирован с firebug .menu-bar li ul a { color: #231F20; display: block; font-size: 12px; font-style: normal; margin: 0; padding: 6px 0 0 10px; text-align:…
CSS-меню с использованием <ul>
Я нахожусь в процессе выполнения моей первой нарезки с PSD по HTML, хотя у меня есть проблема с оформлением меню. У меня есть следующий код <ul> <li><a…
HTML UL CSS пограничный стиль
У меня есть небольшой вопрос относительно html-списков и CSS. Я хочу иметь список (whit sublist), который выглядит следующим образом (просмотр результата, копируя код в…
Изменить стиль ul onclick — css/jquery
У меня есть это простое меню с некоторыми <ul> s, которые загружают его содержимое onclicking на него. И я хочу изменить стиль каждого ul при загрузке контента, который ему принадлежит. Вот…
Стиль <select> меню с использованием только CSS/CSS3
Я хочу знать, почему мы не можем стилизовать меню выбора(а не выпадающее меню), используя только CSS, как мы можем стилизовать кнопки или флажки. Я сталкивался со многими статьями, которые…
CSS меню (скрыть UL)
Я новичок в CSS и пытаюсь создать меню, в котором подсписок виден (и занимает место) только при наведении курсора. Я нашел свойство visibility:collapse; , но оно только маскирует подсписок и…
Выпадающее меню HTML + CSS
Пытаюсь попрактиковаться в создании скользящего вниз меню с html и css. Моя единственная проблема заключается в том, как элементы списка перекрываются с пунктом меню. Как заставить меню скользить за…
Как сделать стиль ul и li в css только для меню
У меня есть стиль для моего горизонтального меню, как это <style> ul { list-style-type: none; margin: 0; padding: 0; overflow: hidden; background-color: #333; } li { float: left; } li a {…
Как отключить стиль UL?
Я использую стиль css для создания выпадающего меню. В меню используются теги UL / LI html. Я также использую комбинацию UL/LI позже при отображении текста. Использование…
Меню многоуровневое горизонтальное и вертикальное CSS
Хотите навсегда избавиться от простатита, геморроя, молочницы и других воспалительных заболеваний?
Эффективное лечение народными средствами!
Прополис + эфирные масла целебных растений + масло какао
Приведённый код позволяет создавать неограниченное количество выплывающих вложений не изменяя стилей и легко трансформируется из горизонтального в вертикальное.
Для того чтоб переделать вертикальное меню в горизонтальное, достаточно изменить лишь одно значение в стилях. О чём я укажу в комментариях в коде.
Я даю только эскиз меню. Оформлять и наводить красоту, каждый будет по своему вкусу.
1. Вертикальное
2. Горизонтальное
Код:
HTML
<div>
<ul>
<li><a href="">Meny1</a>
<ul>
<li><a href="">Meny 1-2</a>
<ul>
<li><a href="">Meny 1-2-1</a></li>
<li><a href="">Meny 1-2-2</a></li>
</ul>
</li>
<li><a href="">Meny 1-3</a>
<ul>
<li><a href="">Meny 1-3-1</a></li>
<li><a href="">Meny 1-3-2</a></li>
</ul>
</li>
</li>
<li><a href="">Meny 2</a>
<ul>
<li><a href="">Meny 2-1</a>
<ul>
<li><a href="">Meny 2-1-1</a></li>
<li><a href="">Meny 2-1-2</a></li>
</ul>
</li>
<li><a href="">Meny 2-2</a>
<ul>
<li><a href="">Meny 2-2-1</a></li>
<li><a href="">Meny 2-2-2</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
Чтоб не выкладывать огромную портянку, я сделал только два блока с двумя уровнями, но вы можете простым копированием добавлять в этот код столько блоков сколько надо и делать столько уровней в каждом блоке, сколько вам потребуется.
Стили для всех блоков, имеющихся и добавленных, будут одинаковыми.
CSS
.nav {
background: white;
text-align: center;
}
.nav a {
text-decoration: none;
display: block;
transition: .5s linear;
}
.nav ul {
list-style: none;
margin: 0;
padding: 0;
}
.topmenu > li {
display: block;
/*Если вместо block задать inline-block,
меню будет горизонтальным*/
position: relative;
width: 200px;
}
.topmenu > li > a {
font-weight: bold;
padding: 10px 30px;
font-size: 12px;
text-transform: uppercase;
letter-spacing: 2px;
color: #1c1c1c;
border: 1px solid #999;
}
.submenu {
position: absolute;
left: 10px;
z-index: 5;
width: 240px;
visibility: hidden;
opacity: 0;
transform: translateY(10px);
transition: .5s ease-in-out;
}
.submenu li {
position: relative;
border: 1px solid #999;
margin:2px;
}
.submenu a {
background: white;
color: #1c1c1c;
text-align: center;
font-size: 14px;
letter-spacing: 1px;
padding: 10px 20px;
}
.submenu .submenu {
position: absolute;
top: 0;
left: 200px;}
.nav li:hover > .submenu {
visibility: visible;
opacity: 1;
transform: translateY(0px);
}
Желаю творческих успехов.
В раздел > > >
Запись опубликована в рубрике CSS основы, HTML основы. Добавьте в закладки постоянную ссылку.Горизонтальное меню на CSS
Сегодня мы будем создавать простое горизонтальное меню с помощью CSS. Для начала мы создадим скелет меню на HTML, и усвоим главные навыки создания горизонтальных меню. После чего мы придадим красивый вид для меню, используя CSS. Как известно, корифеи верстки, предпочитают семантику, от которой мы постараемся не отступать.
HTML код меню
<ul> <li><a href="http://sitear.ru">Главная</a></li> <li><a href="http://sitear.ru">Дизайн, CSS</a></li> <li><a href="http://sitear.ru">Программирование</a></li> <li><a href="http://sitear.ru">Еще пункт меню</a></li> </ul>
По html структуре объяснять нечего, простой UL список. Как упоминалось раньше, семантика соблюдается. Семантика – это когда html тег соответствует содержимому. Если разделы меню сделать DIV блоками, это не будет семантикой. Равнозначные элементы должны быть списком. Посмотрим, что у нас получилось на данном этапе:
UL элемент является блочным, поэтому его ширина будет 100% (на всю ширину страницы). LI также блочный элемент, а вот A – не блочный. Убедиться в этом можно с помощью наложения рамки в css стиле блока – border:1px solid #f00; Мне часто приходиться пользоваться этой хитростью, чтобы видеть границы элементов.
CSS код меню
Для придания этому меню горизонтального положения, выравнивания по центру и соответствующего вида, напишем следующий CSS код:
#menu{list-style:none; width:500px; padding:0; margin: auto;} #menu li{float:left; font:bold 14px Arial;} #menu a{color:#666; display:block; height:40px; line-height:36px; padding:0px 10px 0px 10px; background:#eee; text-decoration:none;} #menu a:hover{color:#fff; background:#888;}
На данном этапе получилось следующее:
Разбор полетов
Разберем все поэтапно, до каждой мелочи:
#menu {…} – С помощью этого выражения мы присваиваем стили для UL элемента, у которого id=menu.
list-style:none; – убираем маркеры (пульки), слева от каждого элемента в списке.
width:500px; – ширина меню 500 пикселей.
margin: auto; – выравнивает меню по центру страницы. Если не будет указана ширина, то выравнивания не произойдет, поэтому предыдущий параметр обязателен.
padding:0; – устанавливаем нулевые внутренние отступы. То есть убираем их вообще. Если не знаете что это дает, установите их в 20px и посмотрите, что измениться.
#menu li {…} – присваиваем стили для LI элементов.
float:left; – обтекание элемента по левой стороне. Это выражение придает меню горизонтального положения.
font:bold 14px Arial; – устанавливаем стиль для текста в самой короткой форме, bold – жирный текст, 14px – размер шрифта в пикселях, Arial – тип шрифта.
#menu a {…} – присваиваем стили для A элемента (ссылки).
color:#666; – темно-серый цвет шрифта.
display:block; — делаем элемент блочным. Это даст возможность присваивать высоту для элемента. В практическом аспекте, это делает кликабельным не только текст ссылки, ни и поле вокруг текста.
height:40px; – высота меню будет 40 пикселей.
line-height:36px; – высота верхней линии над текстом. Это дает возможность задавать вертикальное положение текста внутри блока. Мы используем это для выравнивания текста в вертикальном направлении.
padding:0px 10px 0px 10px; – делаем внутренние отступы слева и справа по 10 пикселей.
background:#eee; – устанавливаем серый цвет фона для элементов меню.
text-decoration:none; – убираем линию подчеркивающую ссылку.
#menu a:hover {…} – присваиваем стили для A элемента при наведении на нее мышки.
color:#fff; – меняем цвет текста на белый.
background:#888; – цвет фона меняем на темно серый.
Доработка горизонтального меню
Это все, что касается основ создания горизонтальных меню на CSS. Далее мы придадим красивый вид нашему меню. Для этого мы присвоим для a элемента background:url(background.png) repeat-x; для a:hover другой фон background:url(hover.png) repeat-x; Ниже предоставлены исходные картинки.
background.png —
hover.png —
Теперь меню имеет немного иной вид:
Это самое простое горизонтальное меню на CSS, которое вы можете использовать как основу для разработки меню для своего сайта. Также можете посмотреть как создать выпадающее горизонтальное меню на css. Надеюсь, статья была полезной и понятной. Если остались вопросы или недопонимания по поводу горизонтальных меню, смело пишите в комментарии.
Дальше: Заработок на контекстной рекламе, идеи для эффективного заработка
Дискуссия по теме 31 Комментарий
Добавить комментарий
Ильдар 11.11.2014 в 22:47
Добрый вечер! а как к пунктам меню добавить материал текст фото видео через css и html не используя движок joomla!
Оксана 04.11.2014 в 15:52
Здравствуйте! Объясните мне чайнику в каком файле должны производиться все эти изменения, общая логика меню мне понятна, но где должен располагаться этот код никак не пойму.
Darksoul 03.09.2014 в 01:00
Здравствуйте! Мне нужна помощь в задании конкретных координат горизонтального меню, а именно в шапке сайта, наложив его сверху на картинку шапки. Сайт на движке вордпресс, могу скинуть файлы header.php, style.php и function.php если они нужны. Ответ если можно пришлите на почту, и заранее спасибо!
Умник 27.08.2014 в 09:50
UL — это весь список, а LI — это вся строчка, вообще-то.
Katrin 25.06.2014 в 01:02
Подскажите как создать горизонтальное меню в CSS и HTML так скажем горизонтальные заголовки и каждый заголовок разным стилем Пример: «контакты ЗАГОЛОВОК корзина»
Артём 23.03.2013 в 14:01
Спасибо, статья очень помогла
Лариса 28.10.2012 в 09:41
Добрый день! Благодаря Вам смогла создать меню. Спасибо! Только есть один момент: в IE меню не горизонтальное, а вертикальное и на ширину страницы. Подскажите, как убрать этот бок. Вот CSS код: #menu{list-style:none; width:1100px; padding:0; margin: auto;} #menu li{float:left; font:bold 14px Arial;} #menu a{ border: 1px solid #FFF; border-right-color: #527337; border-bottom-color: #527337; color:000099; display:block; height:36px; line-height:36px; padding:0px 10px 0px 10px; background:#CCCCFF; text-decoration:none; #menu a:hover{color:#FFFFFF; background:#9999FF;}
Тарас 29.10.2012 в 22:52
Это нужно тестировать. Такой эффект могут давать другие стили сайта. Если есть ссылка на пример, скидывайте сюда.
Валерий 10.09.2012 в 21:38
Вот ещё интересное горизонтальное меню — http://lecaw.ru/index.php/categories/css/item/280-kak-sdelat-gorizontalnoye-vipadayushee-menu-s-effektom-prokrutki-na-css
игорь 30.07.2012 в 18:08
Добрый день . Получилось . Все благодаря ВАМ. Осталось несколько вопросов: 1 поместил внизу шапки сайта <div id …..relative;width:700px;margin:auto;font:bold 12px Verdana;color:#FFF2C0; display:block;height:40px; line-height:36px;padding:0px 1px 0px 1px; 1 это в CSS #uMenuDiv2{list-style:none; width:700px; padding:0; margin:auto;} #uMenuDiv2 li{float:left;font:bold 12px Verdana;color:#FFF2C0;} #uMenuDiv2 a{color:#ffffff; display:block; height:40px; line-height:36px; padding:0px 1px 0px 1px То , что выделено находится внизу шапки сайта и в CSS. Не понятно, что д. б. только в CSS И еще, понравилось , на вашем сайте – постоянная активность кнопки, обозначающая страницу, которая , сейчас открыта. М.б. подскажете . В любом случае огромное ВАМ СПАСИБО за помощь , ведь я узнал что то новое, благодаря ВАМ. С уважением Игорь
Тарас 31.07.2012 в 00:59
Можно хоть в CSS, хоть прямо в теге div. Лучше оставить только в css. Все стили выносят в отдельное место специально, чтобы легче было потом редактировать и менять дизайн. С активной кнопкой ничего не получиться, так как для этого нужно программировать… а как там все на укозе я не знаю. Всего вам доброго! Рад что все получилось.
игорь 29.07.2012 в 19:28
Добрый день, Тарас! Вообщем просмотрел разные варианты горизонтального меню, интернет , форумы ,все попробовал , но ничего не получилось , то искажает дизайн,то еще что то , тоска . Вывод- все что пишут в интернете — это для более- менее подготовленных , специалисты делятся своими разработками, вариантами и т.д. Новичкам это сложно . К ВАМ , убедительная просьба , если есть возможность , помогите довести дело до конца, ну а на нет …Вы и так много времени потратили на меня. С уважением Игорь
Тарас 30.07.2012 в 01:56
Дело в том, что я сам не знаю куда добавлять пункт uMenuDiv2… системой ucoz никогда не пользовался. Добавлять нужно туда где пишуться стили css… берете код, который подан в этой статье (здесь уже с ссылкой на фоновую картинку): #menu{list-style:none; width:500px; padding:0; margin: auto;} #menu li{float:left; font:bold 14px Arial;} #menu a{color:#666; display:block; height:40px; line-height:36px; padding:0px 10px 0px 10px; background:url(background.png) repeat-x; text-decoration:none;} #menu a:hover{color:#fff; background:url(hover.png) repeat-x;} вместо #menu пишите #uMenuDiv2… все остальное оставляете так же… две эти картинки закидаете в папку с файлом стилей (тот куда вы пишите этот код).
игорь 25.07.2012 в 20:22
Здравствуйте. Благодарю за ответы. То , что вы подсказали –сделал. Нравится. Провел день в поисках ответа 1 Посмотрите сайт http://compstil.ucoz.ru/ 2 Не получились блоки . цвет блоков и hover(цвета положил в файловый менеджер), есть адрес ссылки , но … Пробовал разные варианты ,смотрел интернет , форум –но результата нет,т.е. нет картинки как в вашей статье – красиво ,просто. 3 кстати , запутался , по моему эти данные надо вводить в CSS , но тогда м.б. надо создать в CSS пункт типа .. uMenuDiv2… , или эти данные надо добавлять в Site Menus или другое Если , возможно найдете время , пожалуйста посмотрите. Еще раз огромное спасибо за вашу помощь С уважением Игорь
игорь 25.07.2012 в 09:11
4 как разместить ссылки страниц в меню Вообщем , сами увидите , мои недоработки ,Прошу подсказать что надо доделать Еще раз огромное спасибо за вашу помощь С уважением Игорь Спасибо -всего 4 части Игорь Статья нужная , полезная
Тарас 25.07.2012 в 14:11
Вы вставили в меню просто текст, оно должно выглядеть следующим образом: <div> <li><a href=»http://compstil.ucoz.ru/»>Главная</a></li> <li><a href=»http://compstil.ucoz.ru/»>Доска объявлений</a></li> </ul> </div>
игорь 25.07.2012 в 09:09
3 Остались не решенными следующее — #menu {…} – С помощью этого выражения мы присваиваем стили для UL элемента, у которого id=menu. ????? — #menu li {…} – присваиваем стили для LI элементов. ???? — display:block; — делаем элемент блочным. Это даст возможность присваивать высоту для элемента. В практическом аспекте, это делает кликабельным не только текст ссылки, ни и поле вокруг текста. Не получилось — padding:0px 10px 0px 10px; делаем внутренние отступы слева и справа по 10 пикселей Не заметил — #menu a:hover {…} – присваиваем стили для A элемента при наведении на нее мышки.???? -color:#fff; – меняем цвет текста на белый. -background:#888; – цвет фона меняем на темно серый.
Тарас 25.07.2012 в 14:16
В вашем случае присваивание стилей будет следующим: #uMenuDiv2 {здесь идут все стили для меню} #uMenuDiv2 li {здесь идут стили для разделов меню, смотрите ответ на последний ваш коммент} #uMenuDiv2 a:hover {color:#fff; background:#888;} — это для ссылок меню при навидении. Рассмотрите еще раз, внимательно, картинку в начале урока! И HTML код меню.
игорь 25.07.2012 в 09:09
2 итак ,я взял Ваш код и поместил его внизу верхней части сайта и постепенно добавлял ,по пункту –получилось следующее <div> Главная Доска объявлений Новости Наука, техника Обратная связь Контакты </ul> </div>
игорь 25.07.2012 в 09:08
пересылаю частями Добрый день. Благодарю за ответ Возникли новые вопросы. Пожалуйста , если возможно , ответьте . Хочется довести дело до конца 1 Посмотрите сайт http://compstil.ucoz.ru/ Есть горизонтальное меню , созданное с вашей помощью. (этот сайт отличается от того . что я упоминал ранее , только названием и служит мне экспериментальной базой , на нем я пробую разные варианты , а потом переношу на основной)
игорь 23.07.2012 в 14:51
Здраввствуйте. сайт http://impexstil.ucoz.ru/ спасибо за проявленное желание помочь на сайте видно горизонтальное меню , надо его установить по центру и хотел бы такие же кнопки С уважением Игорь
Тарас 24.07.2012 в 00:14
<div> <ul> содержимое меню </ul> </div> вот так выглядит ваше меню… Попробуйте назначить к div ширину width:500px; или больше, главное чтобы хватало на все разделы. После этого к этому же div блоку добавьте атрибут margin:auto;
игорь 22.07.2012 в 14:16
Добрый день! Благодарю за статью .Очень полезна. Я, не специалист , поэтому похвала будет не корректно, Если позволите , вопрос: -у меня сайт ucoz, есть вертикальное меню , но надо продублировать в горизонтальном , с последующей переделкой вертикального меню в категории и др. Пока , не ясен вопрос в какой раздел CSS вставить код С уважением Игорь
Тарас 23.07.2012 в 14:39
Здравствуйте Игорь! К сожалению на ucoze я никогда не работал и не знаю что и к чему… Может быть что-то посоветую, если дадите ссылку на сайт (страницу).
Павел 03.07.2012 в 16:33
Спасибо! Ваша статья очень помогла мне!
timon 04.06.2012 в 12:20
Спасибо огромное!
artiom 14.05.2012 в 15:35
великолепно! респект и благодарность автору!)
Тарас 14.05.2012 в 15:59
Спасибо, Артем!
Устим 01.04.2012 в 19:45
Тарас, спасибо за ответ. Пробовал и так и так. Ничего не происходит. Только липнет к левому краю и всё…( Размпер остаётся тот же.
Устим 31.03.2012 в 17:14
Здравствуйте. Хотел бы узнать, как зделать так чтобы бекграунд меню был до самого конца сайта, а не заканчивался на последнем разделе. У меня шляпа сайта на весь экран по горизонтали, а меню от левого края идёт до средины, потому что всего 5-ть разделов. А я хотел бы чтобы полоса меню шла до конца. А то как то очень глупо получается сейчас)))
Тарас 01.04.2012 в 16:54
Уберите аттрибут width:500px, или установите 100%, должно работать.
Добавить комментарий
Что делает меню стили. Простое кроссбраузерное горизонтальное меню
и создания меню.Синтаксис
HTML | |
HTML5 | … |
Атрибуты
Устанавливает видимую метку для меню. Задает тип меню.Закрывающий тег
Обязателен.
Валидация
Использование этого тега осуждается спецификацией HTML4, валидный код получается только при использовании переходного . В HTML5 применение тега
корректно.HTML 4.01 IE Cr Op Sa Fx
Тег MENUВ этом выпуске:
Результат данного примера показан на рис. 1.
Рис. 1. Вид списка, созданного с помощью тега
HTML5 IE Cr Op Sa Fx
Тег MENUЗадача центрирования горизонтального меню может оказаться не такой уж простой, особенно для новичков в CSS. Поиск решений приводит к весьма ограниченному списку методов, основная часть которых полагается на трюки CSS, JavaScript или использование нестандартных правил, которые поддерживаются не всеми браузерами. В данном уроке мы разберем метод центрирования горизонтального меню, который использует только стандартные правила CSS и работает во всех браузерах.
Пример центрированного меню
Ниже приведено горизонтальное центрированное в данной колонке меню, в котором активизирована вторая закладка. Можно попробовать изменить размер окна браузера или страницы, чтобы убедиться в том, что меню всегда остается центрированным и рабочим.
На демонстрационной странице можно увидеть несколько вариантов оформления горизонтально центрированного меню. Любой из них можно использовать в своих проектах.
Разметка HTML
Все меню, примеры которых приводятся в данном уроке, используют простую структуру. Это обыкновенный неупорядоченный список ссылок, помещенный в элемент div .
Код CSS центрированного меню
Ниже приводится полный код CSS, с помощью которого центрируется меню. А объяснения принципа работы приводятся далее в уроке.
#centeredmenu { float:left; width:100%; background:#fff; border-bottom:4px solid #000; overflow:hidden; position:relative; } #centeredmenu ul { clear:left; float:left; list-style:none; margin:0; padding:0; position:relative; left:50%; text-align:center; } #centeredmenu ul li { display:block; float:left; list-style:none; margin:0; padding:0; position:relative; right:50%; } #centeredmenu ul li a { display:block; margin:0 0 0 1px; padding:3px 10px; background:#ddd; color:#000; text-decoration:none; line-height:1.3em; } #centeredmenu ul li a:hover { background:#369; color:#fff; } #centeredmenu ul li a.active, #centeredmenu ul li a.active:hover { color:#fff; background:#000; font-weight:bold; }
Как работает метод центрирования
Действие метода основано на относительном позиционировании плавающих блочных элементов один в другом. Для начала посмотрим, как изменяется размер элементов при смещении.
Элемент div (блочный) без смещения растягивается на всю доступную ему ширину.
Но если мы будем смещать элемент div влево, он автоматически будет ужиматься до размеров своего содержимого. Сжатие является ключевым моментом в реализации данного метода центрирования меню. Оно помогает перемещать меню в правильную позицию.
Стандартное выровненное влево меню
Возьмем стандартное выровненное влево меню и будем шаг за шагом его переделывать. Для наглядности пункты окрашены в разные цвета, так что сразу понятно, что куда вложено.
Обратите внимание на следующие моменты:
- Элемент centeredmenu div (голубой прямоугольник) смещается влево, но имеет ширину 100%, поэтому остается растянутым на всю страницу.
- Элемент ul (розовый прямоугольник) находится внутри элемента centeredmenu div и смещается влево. Это означает, что он будет ужат до ширины своего содержимого, то есть до суммарной ширины всех закладок.
- Все элементы li (зеленые прямоугольники) находятся внутри элемента ul и смещаются влево. Таким образом, они ужимаются до размеров ссылок в них и выстраиваются в одну горизонтальную линию.
- Внутри каждой ссылки (оранжевые прямоугольники) выводится текст закладки: Закладка 1, Закладка 2 и так далее.
Смещаем положение неупорядоченного списка
Затем мы смещаем элемент ul вправо на 50% с помощью свойства position:relative; . Когда элемент смещается с указанием процента при таких условиях важно помнить, что суммарная ширина содержащихся в нем элементов не является его шириной. В нашем случае смещение происходит на половину окна браузера (или доступного для вывода пространства).В результате наше меню начинается на середине окна и частично выходит за его пределы. И переходим к следующему шагу.
Сдвигаем положение всех элементов меню
Осталось только сдвинуть все элементы li влево на 50%. Это 50% ширины нашего элемента ul (контейнера, который содержит меню). Таким образом, закладки смещаются точно на центр окна.
Несколько важных замечаний
При использовании данного метода центрирования надо помнить о нескольких важных моментах:
- Так как элемент ul частично выходит за рамки окна, то это приводит к выводу полос прокрутки. Поэтому нужно использовать правило overflow:hidden; для элемента centeredmenu div . Таким образом, выступающая часть элемента div будет обрезана.
- Так как элемент ul не выровнен по закладкам, то нельзя использовать никаких визуальных стилей для него. Оставьте элемент ul без фонового цвета и без рамки, чтобы он стал полностью невидимым. А стили для закладок нужно использовать только для элементов li .
- Если нужно задать особенные стили для первой и последней закладки, нужно добавить класс для первого и последнего элементов li , чтобы можно было стилизовать их индивидуально.
Заключение
Предложенное решение совместимо со всеми браузерами, не использует JavaScript и поддерживает изменяемый размер текста.
От автора: всех приветствую. Почему-то выпадающее меню у веб-мастеров ассоциируется со скриптами, но уже давно сделать такую навигацию можно абсолютно спокойно на чистом css. Причем такое меню будет ничем не хуже. Сегодня я вам покажу, как создать в css выпадающее меню. Поделюсь, так сказать, рецептом.
План урока и разметка нашего меню
В общем-то, сначала определимся с тем, как будем создавать само меню. В html5 стандартным способом считается создавать его в контейнере nav с помощью маркированного списка. Давайте именно так и сделаем. Маркеры мы позже уберем с помощью css, в меню они нам совершенно не нужны.
Собственно, я сразу напишу в html разметку с вложенными списками. То есть наши список будет двухуровневым – в нем будут другие списки. А именно, на каждый пункт 1 список, который и будет формировать выпадающее меню.
Тут есть важный момент, который заключается в том, что вам, возможно, не нужно каждый пункт делать выпадающим, а лишь некоторые. Без проблем, тогда в пунктах без выпадения просто не создаем вложенных списков.
Собственно, вот она, вся разметка:
Пункт1 Подпункт Подпункт Подпункт Пункт2 Подпункт Подпункт Подпункт Пункт3 Подпункт Подпункт Подпункт Пункт4 Подпункт Подпункт Подпункт |
Я понимаю, что она огромна. В этом-то и проблема вложенных списков, что требуется писать много кода. Но учитывайте тот факт, что мы делаем 4 основных пункта и для каждого будет выпадающее меню.
Собственно, я задал всей навигации идентификатор nav, а всем вложенным спискам – стилевой класс second, чтобы понимать, что они являются вложенными.
Отлично, разметка у нас готова, можно посмотреть на результат:
Да уж, выглядит ужасно. Но сейчас мы включим в работу css и уже через несколько минут наша навигация преобразится. Давайте работать.
Пишем css-стили
Первое, что я сделаю, это сброшу все отступы по умолчанию для всех элементов. Они нам будут только мешать, лучше зададим потом отступы сами, где это понадобится.
*{ margin: 0; padding: 0; }
margin : 0 ; padding : 0 ; |
#nav{ height: 70px; } #nav ul{ list-style: none; }
#nav{ height : 70px ; #nav ul{ list — style : none ; |
Теперь нам нужно, собственно, решить, каким будет наше меню. Горизонтальным или вертикальным? Я предлагаю сначала сделать горизонтальное и посмотреть все на его примере. Для этого нужно написать такие стили:
#nav > ul > li{ float: left; width: 180px; position: relative; }
#nav > ul > li{ float : left ; width : 180px ; position : relative ; |
Заметьте, что с помощью знака > мы обращаемся к пунктам списка, который непосредственно вложены в ul, а тот непосредственно вложен в nav. Это очень важно, так как позволяет не применить стиль к пунктам вложенных списков. Дело в том, что по моей задумке в главном списке пункты будут располагаться горизонтально, а во вложенных – вертикально.
Но вы, конечно, можете делать по-другому, в согласии со своей задумкой. Вы можете сделать так, чтобы все пункты были в одну строчку.
В любом случае, вышеприведенный код, я надеюсь, вы понимаете. Он заставляет пункты главного списка прижиматься к левому краю, так что все они встают в одну строку, хотя и являются блочными элементами. Также я задал им явную ширину и относительное позиционирование.
Для чего позиционирование? Оно необходимо для того, чтобы потом абсолютно позиционировать вложенные списки. Если вы изучали позиционирование в css, то наверняка знаете, что если задать блоку относительное позиционирование, то все элементы в нем можно будет позиционировать абсолютно внутри именно этого блока, а не всего окна браузера.
Тем временем, вот что у нас уже получилось:
По этому скриншоту вы можете уже представить себе примерный результат. Конечно, нам еще предстоит красиво оформить пункты, чтобы глаза не умоляли о пощаде при просмотре навигации.
#nav li a{ display: block; background: #90DA93; border: 1px solid #060A13; color: #060A13; padding: 8px; text-align: center; text-decoration: none; } #nav li a:hover{ background: #2F718E; }
#nav li a{ display : block ; background : #90DA93; border : 1px solid #060A13; color : #060A13; padding : 8px ; text — align : center ; text — decoration : none ; #nav li a:hover{ background : #2F718E; |
Во-первых, сами ссылки нужно сделать блочными. Это необходимо для того, чтобы работали внутренние отступы и корректно применялись все свойства. Далее указываю цвета фона, текста, параметры рамки, внутренние отступы и выравнивание текста по центру. Наконец, отменяю подчеркивание ссылок.
Все эти параметры не обязательно прописывать так, как это сделал я. Цвета вы можете выбрать произвольно, рамку сделать другую или вообще не использовать, отступы можно уменьшать или увеличивать.
Заметьте, что в данном случае мы не использовали знак >, поэтому указанные правила применятся ко всем ссылкам, в том числе и тем, что находятся во вложенных пунктах. Итак, теперь имеем следующее:
Отлично, но ведь вы понимаете, что подпункты не должны быть видно, они должны раскрываться при наведении на нужный пункт. Без этого наше меню похоже на таблицу. Что ж, самое время спрятать вложенные пункты.
#nav li .second{ display: none; position: absolute; top: 100%; }
#nav li .second{ display : none ; position : absolute ; top : 100 % ; |
Во-первых, скрываем полностью вложенные списки. Во-вторых, задаем им абсолютное позиционирование и координату top: 100%. Это означает, что выпадающее меню будет отображаться четко под основным пунктом, которому принадлежит, четко под 100% высоты этого пункта.
Теперь мы видим на веб-странице только основное меню, что нам и нужно.
Реализуем выпадение
Нам осталось сделать самое главное – реализовать само выпадение. В этом нет ничего сложного, смотрите на этот код:
#nav li:hover .second{ display: block; }
#nav li:hover .second{ display : block ; |
Этот код будет работать безукоризненно. При наведении на пункт основного меню, вложенный список будет становиться видимым. Причем только тот список, что вложен в пункт, на который наводится курсор.
Есть только одна незначительная проблема – ширина вложенных пунктов не соответствует ширине основных. Но это очень легко решается дописыванием соответствующих стилей:
#nav li li{ width: 180px; }
#nav li li{ width : 180px ; |
Все, проблема решена:
Все работает отлично. При наведении на основной пункт появляется соответствующее ему выпадающее меню. Если убрать курсор в сторону – оно пропадает. Если перевести курсор на сами вложенные пункты, то можно будет по ним кликнуть и перейти в нужный раздел сайта. Таким образом, мы сделали с вами очень простое и легкое выпадающее меню абсолютно без скриптов.
Переделываем меню в вертикальное
Ну хорошо, с горизонтальной навигацией мы с вами полностью разобрались, но ведь помимо нее на сайтах очень часто встречается и вертикальная и она тоже может быть выпадающей. На самом деле переделать меню с горизонтального на вертикальное очень легко, нам придется изменить буквально пару строк кода.
Во-первых, вам нужно будет убрать float:left у главных пунктов списка. Именно это свойство способствует тому, что наши пункты отображаются в одну строку, но зачем нам это, если навигация должна быть вертикальной?
Теперь остается изменить правила для селектора #nav li .second, то есть для вложенных списков, а именно, их нужно немного по-другому позиционировать. Вот так:
#nav li .second{ display: none; position: absolute; left: 100%; top: 0; }
#nav li .second{ display : none ; position : absolute ; left : 100 % ; top : 0 ; |
То есть необходимо прописать две координаты вместо одной. Во-первых, в случае с горизонтальной навигацией я говорил, что по задумке пункты вложенных меню должны отображаться под основными пунктами. В случае с вертикальным меню это не подходит – пункты должны отображаться сбоку.
Поэтому изменяем top: 100% на left: 100%. Кроме этого, координата top нам тоже нужна. Задаем ей 0, чтобы вложенное меню находилось на одном уровне с пунктом, которому соответствуют.
Все, теперь все работает так, как надо. Можете протестировать. Как видите, я не врал, когда говорил, что придется переписать всего несколько строк кода.
Горизонтальное меню с несколькими уровнями
Используя примерно такой же подход вы можете создать больше уровней меню, если это сильно необходимо. Например, давайте создадим для четвертого пункта главного меню список, который будет вложен в один из подпунктов.
Задача
Отобразить маркированый список горизонтально без маркеров.
Решение
Тег маркированного списка
- по умолчанию выводит элементы
- вертикально друг над другом. Для создания элементов навигации, в некоторых случаях, удобно выводить список горизонтально. Для получения такого отображения списка есть несколько способов.
Вам уже должно быть известно, что в HTML есть блочные и строчные элементы. Строчные элементы не создают своих блоков, пример таких элементов — это теги или . Блочные элементы отображаются с новой строки и создают прямоугольный блок, пример таких тегов или
Так вот, тег
- также является блочным элементом.
Чтобы тег
- не вёл себя как блочный элемент, можно при помощи CSS сделать его строчным.
За то, как элемент будет отображён в документе отвечает CSS свойство display . Рассмотрим три его значения (хотя их больше):
- block — элемент отображается как блочный.
- inline — элемент отображается как строчный.
- inline-block — блочно-строчный элемент, подробнее про этот тип элементов читайте ниже, мы будем его использовать.
Сначала сделаем горизонтальный список превратив его пунткы в строчные элементы. В стиле CSS пропишем правило, в котором селектору li установлено свойство display со значением inline .
Список горизонтальноИтак, этот стиль сработал и получили горизонтальное расположение пунктов списка:
Рисунок 1. Работа примера №1.
У этого метода есть недостатки. Дело в том, что inline элементы имеют некоторые ограничения, по сравнению с блочными элементами. Например им нельзя задавать ширину и высоту, а блочным можно.
Например нам нужно чтобы элемент создаваемого нами меню имел ширину 150px и высоту 40px . Попробуем изменить стиль на следующий, то есть добавим два правила устанавливающих размер пункта меню:
Эти правки не приведут ни к каким изменениям. Чтобы элементы меню располагались горизонтально и можно было устанавливать их ширину и высоту им нужно установить тип inline-block . Изменим код нашего примера:
Список горизонтальноЭтот код работает и изменения видны:
Рисунок 2. Работа примера №2.Но могут быть разные варианты, например нам нужно отобразить в меню вложенные списки:
Вложенный список.Вот результат работы этого кода:
Рисунок 3. Работа примера №3.Мы видим что блоки выравниваются по высоте не так, как нам хотелось бы. Конечно, можно указать для всех блоков одинаковую высоту, но не всегда нам заранее известно её точное значение, и оно может меняться.
А собственно, почему так происходит?
Наши блоки имеют свойство display со значением inline-block . Это значит что у них есть качества как блочных элементов (возможность указать ширину и высоту), так и строчных элементов. То что мы наблюдаем — это качество строчных элементов.
Давайте рассмотрим строку с символами «А» разной величины:
А А А А А А А
Мы видим что все буквы по вертикали выравнены по нижней линии. Точнее по базовой линии, но сейчас не будем влазить в дебри. Так вот, с нашими блоками произошло то же самое.
Для выравния текста по вертикали служит свойство vertical-align . В нашем примере №3 нужно использовать значение top , которое выравняет верхнюю границу элемента по верху самого высокого элемента строки.
Пока применим его к строке с символами «А» разной величины:
А А А А А А А
Кажется, что буквы немного «скачут». Я установил CSS границу border самой высокой букве, чтобы было видно, что скачков на самом деле нет, есть пустое пространство между верхней границей (по которой происходит выравнивание) и верхней точкой символа «А».
Свойство vertical-align нужно применять к каждому строчному элементу, оно не наследуется. Вы можете прочитать подробней про это свойство: vertical-align .
После этого отступления продолжим размещать элементы списка горизонтально.
Второй способ
Разместить элементы списка горизонтально можно используя свойство float . Это свойство указывает по какой стороне выравнивается элемент, имеет две позиции: left и right .
Вот пример с использованием этого кода:
Список горизонтальноВот результат работы кода:
Рисунок 4. Работа примера.Вроде пример работает. Но в использовании этого свойства есть один нюанс. Сейчас мы его рассмотрим. Для примера возьмём код, в котором есть два горизонтальных списка с разным способом расположения элементов горизонтально: display и float :
Список горизонтальноВот результат работы кода:
Рисунок 5. Работа примера.В этих примерах контейнеры списка
- имеют красную границу толщиной 1 пиксел. Но верхний список, в котором используется свойство display
, включает в себя элементы списка. А вот элементы списка созданного с использованием свойства float
выпадают из своего контейнера.
- всё ещё располагаются вне контейнера
- .
Рисунок 7. Работа примера.
Кроме того, в работе нам не всегда известно какой элемент будет следовать за элементом использующим float . Идеальный был бы вариант закрытия работы свойства float в том же блоке, в котором он открыт.
Это делается при помощи псевдоэлемента. Вот код:
Список горизонтальноТеперь у нас 100% рабочий код.
Рисунок 8. Работа примера.Этот приём со свойством float обычно используют при вёрстке сайтов для выравнивания столбцов, которые создаются тегами
. Таким способом мы получаем нормальное построение столбцов с требуемым выравниванием по высоте. Когда мы создаём меню, то нам, в большенстве случаев, не важна высота блоков, она практически всегда одинакова. Поэтому использование правила {display : inline-block } в этих случаях вполне оправдано.Но для полноты раскрытия темы мы тут ознакомились со всеми возможными вариантами. Хотя может есть и другие способы, например использование CSS-таблиц, но поисковики настойчиво рекомендуют использовать таблицы только по их прямому назначению, а не для организации элементов навигации или ещё как-либо.
СХОЖИЕ СТАТЬИ
При этом на первый взгляд всё работает. Но давайте поменяем местами наши списки. Поставим список с классом menu-1 в коде перед списком с классом menu-2 (сейчас он ниже).
Вот что мы получим в результате:
Рисунок 6. Работа примера.Пункты нижнего меню также обтекают вержнее меню, ведь действие свойства float никто не отменял и оно распространяется на все последующие элементы.
Как решить эту проблему?
Для этого нужно использовать свойство clear , оно отменяет обтекание элементом другого элемента, если у того установлено свойство float .
Вот изменённый пример с использованием свойства clear :
Список горизонтальноВидно что нижний список уже не обтикает верхний, элементы не наезжают друг на друга. Но в первом списке теги
- также является блочным элементом.
Выпадающее меню на HTML и CSS
Выпадающее меню можно сделать на CSS не используя скрипты и модули. Просто дописываем несколько строк в CSS файл и готово. Несмотря на простоту меню будет достаточно универсальным. Стили подходить под произвольное количество уровней вложенности. Хоть два хоть десять уровней. Код при этом остаётся тем же. В статье описаны три вида меню, но если вы только начинаете разбираться в вёрстке советую читать сначала. Так будет проще понять.
- Вертикальное выпадающее меню
- Горизонтальное выпадающее меню с одним уровнем вложенности
- Горизонтальное меню с несколькими уровнями вложенности
Сначала сделаем HTML разметку для меню. Принято делать меню списком. Это не стандарт просто так сложилось.
<ul>
<li><a href="#">пункт 1</a>
<ul>
<li><a href="#">пункт 1.1</a></li>
<li><a href="#">пункт 1.2</a></li>
</ul>
</li>
<li><a href="#">пункт 2</a>
<ul>
<li><a href="#">пункт 2.1 многа букаф</a></li>
<li><a href="#">пункт 2.2</a>
<ul>
<li><a href="#">пункт 2.2.1</a></li>
<li><a href="#">пункт 2.2.2</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">пункт 3</a></li>
<li><a href="#">пункт 4</a></li>
<li><a href="#">пункт 5</a></li>
</ul>
HTML файл мы больше трогать не будем. Все дальнейшие изменения производятся только за счёт CSS. Первое что нам нужно сделать — скрыть вложенные пункты.
ul.nav li ul {display: none;}
Ещё нужно убрать маркеры но это дело вкуса.
ul.nav li {list-style: none;}
Чтобы вложенные пункты появлялись при наведении на родительский пункт используем псевдокласс :hover, при этом нужно сделать так что бы появлялись только пункты первого уровня вложенности. Для этого используем знак >
ul.nav li:hover > ul {display: block;}
В этой строчке заключается вся магия нашего выпадающего меню, поэтому разберём её подробнее. Благодаря псевдоклассу :hover, при наведении курсора на пункт меню, он же элемент списка li, для первого вложенного списка ul значение display станет block. Так открывается первый уровень вложенности. Если на этом уровне есть пункты содержащие подпункты, то при наведении на них также откроется только один вложенный уровень.
С основной механикой разобрались. Осталось переопределить место где будут появляться вложенные пункты. Для этого воспользуемся свойством position: absolute. При таком позиционировании отсчёт координат ведётся от края окна браузера если только для родительского элемента не задано свойство position с значением fixed, relative или absolute. В этом случае отсчёт ведётся от края родительского элемента.
Используя свойство position мы переместим вложенные пункты в право на расстояние равное ширине меню. В рассматриваемом способе есть одно ограничение. При позиционировании нам придётся жёстко задать ширину. С другой стороны вертикальное меню размещается в сайдбаре ширина которого заранее определена, поэтому привязка к ширине не должна вызвать проблем.
/* Вертикальное выпадающее меню*/
body{
background: #DCDCDC;
}
/*блок меню*/
ul{
margin: 0;
padding: 0;
}
ul.nav li {
background: #B3B3FF;
border: 1px solid #FFFFFF;
list-style: none;
width: 150px; /*ширина блока меню*/
}
ul.nav li a {
text-decoration: none;
display: block;
padding: 5px 5px 5px 15px;
}
ul.nav li ul {
display: none; /*скрываем вложенные пункты*/
}
/*Выпадающее меню*/
ul.nav li:hover {
/* позиционирование вложенных элементов
* будет расчитыватьться относительно
* родительского элемента
*/
position: relative;
background: yellow;
}
ul.nav li:hover > ul {
display: block;
}
ul.nav li:hover ul{
position: absolute;
top: 0; /*Задаём координаты для вложенных пунктов*/
left: 150px; /*меню раскрывается вправо*/
}
Вот что должно получиться в результате. демка
Для горизонтального меню мы будем так же применять позиционирование но есть несколько нюансов. Что бы сделать меню горизонтальным используем свойство float. Меню будет раскрываться вниз значит при позиционировании нужно учитывать высоту. Для начала сделаем меню с одним уровнем вложенности. Вложенное меню также будет горизонтальным. Для этого вложенное меню позиционируем относительно списка а не родительского пункта и задаём для него ширину.
/*Горизонтальное выпадающее меню с одним уровнем вложенности*/
body{
background: #DCDCDC;
}
/* Блок меню*/
ul{
margin: 0;
padding: 0;
}
ul.nav li {
background: #B3B3FF;
border-right: 1px solid #FFFFFF;
float: left; /*делаем меню горизонтальным*/
height: 30px;
list-style: none;
}
ul.nav li a {
text-decoration: none;
display: block;
padding: 5px 5px 5px 15px;
}
ul.nav li ul {
display: none; /*скрываем вложенные пункты*/
}
ul.nav li:hover {
background: yellow;
}
/*Выпадающее меню*/
ul.nav {
position: relative;
background: #B3B3FF;
height: 30px;
width: 600px;
}
ul.nav li:hover > ul {
background: #D0E0FF;
border-top: 1px solid white;
display: block;
width: 600px;
position: absolute;
top: 30px;
left: 0;
}
Вот что получиться в итоге демка.
Созданное в предыдущем пункте меню также может быть многоуровневым но выглядит оно при этом не очень. На мой взгляд многоуровневое меню должно открываться следующим образом — первый уровень вниз остальные вправо. Здесь, в отличии от предыдущего горизонтального меню, вложенные пункты позиционируем относительно родительского пункта и задаём для них ширину. Ширина нам нужна для второго и последующих уровней вложенности. В этом меню мы возьмём понемногу от предыдущих и немного добавим нового.
/*Горизонтальное выпадающее меню a*/
body{
background: #DCDCDC;
}
/* Блок меню*/
ul{
margin: 0;
padding: 0;
}
ul.nav li {
background: #B3B3FF;
border-right: 1px solid #FFFFFF;
float: left; /*делаем меню горизонтальным*/
height: 30px;
list-style: none;
}
ul.nav li a {
text-decoration: none;
display: block;
padding: 5px 5px 5px 15px;
}
ul.nav li ul {
display: none; /*скрываем вложенные пункты*/
}
ul.nav { /*задаём высоту и ширину меню*/
background: #B3B3FF;
height: 30px;
width: 600px;
}
/*Выпадающее меню*/
ul.nav li:hover {
background: yellow;
position: relative;
}
ul.nav li:hover > ul {
border-top: 1px solid white;
display: block;
position: absolute;
top: 30px; /*первый уровень меню раскрывается вниз*/
left: 0;
}
/*Второй и последующие уровни вложенности*/
ul.nav li ul li{
border-bottom: 1px solid white;
height: auto;
width: 150px;
}
ul.nav li:hover ul li ul{
position: absolute;
top: 0;
left: 150px; /*второй и последующие уровни расскрываются вправо*/
}
Вот так будет выглядеть наше многоуровневое меню демка.
Как добавить горизонтальное меню навигации на сайт Weebly?
Помимо меню навигации по умолчанию, в Weebly нет возможности добавлять дополнительные меню. В нашей предыдущей статье мы увидели, как добавить вертикальное навигационное меню CSS, а в этой статье мы рассмотрим, как добавить простое горизонтальное навигационное меню в Weebly. Виджет горизонтального меню CSS будет иметь одноуровневую навигацию, так что его можно будет использовать в меньшем пространстве. Меню навигации будет выглядеть примерно так, как показано ниже, и его можно настроить на любой цвет.
Стиль 1
Стиль 2
Стиль 3
CSS для виджета горизонтального меню навигации
Он имеет простой неупорядоченный список, а свойство «list-style: none» используется для скрытия маркеров. Сначала давайте создадим несколько стилей для списка меню, это необходимо, чтобы стили CSS не мешали стилям списка по умолчанию Weebly.
#menu { line-height: 30px; } #menu ul { margin:0; padding:10px 10px 0 50px; list-style:none; } #menu li { display:inline; margin:0; padding:0; }
Затем у нас есть еще несколько определений стилей для элементов ссылок и спама:
#menu a { float:left; background: #FF9933; border: 1px solid #33CCCC; border-radius:8px 0px 0px 0px; margin:0; padding:0 0 0 4px; text-decoration:none; } #menu a span { float:left; display:block; background: #FF9933; padding:5px 15px 4px 6px; color: #000033; font-weight: 600; box-shadow: 10px 10px 5px #888888; text-shadow: 0 0 3px #FF0000, 0 0 5px #0000FF; } # a:hover span { color:#FFF; }
Ниже приводится полный CSS-код, который необходимо добавить в раздел «Код заголовка» вашей страницы Weebly.
<style> #menu { line-height: 30px; } #menu ul { margin:0; padding:10px 10px 0 50px; list-style:none; } #menu li { display:inline; margin:0; padding:0; } #menu a { float:left; background: #FF9933; border: 1px solid #33CCCC; border-radius:8px 0px 0px 0px; margin:0; padding:0 0 0 4px; text-decoration:none; } #menu a span { float:left; display:block; background: #FF9933; padding:5px 15px 4px 6px; color: #000033; font-weight: 600; box-shadow: 10px 10px 5px #888888; text-shadow: 0 0 3px #FF0000, 0 0 5px #0000FF; } # a:hover span { color:#FFF; } </style>
HTML для горизонтального меню навигации
Замените ссылки и якорные тексты в приведенном ниже HTML-коде и вставьте его в элемент «Вставить код» на своей странице Weebly:
<div> <ul> <li><a href="https://www.webnots.com/add-horizontal-navigation-menu-in-weebly-site/#"><span>WordPress</span></a></li> <li><a href="https://www.webnots.com/add-horizontal-navigation-menu-in-weebly-site/#"><span>Weebly</span></a></li> <li><a href="https://www.webnots.com/add-horizontal-navigation-menu-in-weebly-site/#"><span>Wix</span></a></li> <li><a href="https://www.webnots.com/add-horizontal-navigation-menu-in-weebly-site/#"><span>Squarespace</span></a></li> <li><a href="https://www.webnots.com/add-horizontal-navigation-menu-in-weebly-site/#"><span>Yola</span></a></li> <li><a href="https://www.webnots.com/add-horizontal-navigation-menu-in-weebly-site/#"><span>Webs</span></a></li> <li><a href="https://www.webnots.com/add-horizontal-navigation-menu-in-weebly-site/#"><span>Drupal</span></a></li> <li><a href="https://www.webnots.com/add-horizontal-navigation-menu-in-weebly-site/#"><span>Joomla</span></a></li> </ul> </div>
Параметры настройки
Поскольку CSS для этого виджета очень прост, его можно настроить по своему усмотрению. Например, для изменения внешнего вида можно настроить высоту линии, цвета фона и радиус границы. Ознакомьтесь с демонстрацией, показывающей различные меню навигации с небольшими изменениями в базовом CSS.
OJS 3: выпадающее меню в сайдбаре
Уважаемые коллеги, в данном материале мы расскажем о том, как можно сравнительно быстро и просто добавить на сайт Open Journal Systems 3 красивое выпадающее меню.
Меню можно отобразить в боковой панели сайта (сайдбаре). Хорошо подойдет для архива, политик журнала или размещения любой другой информации на всех страницах сайта. Подойдет для базового шаблона OJS.
Образец меню Вы можете посмотреть на одном из наших сайтов.
1. Загружаем файл JS со скриптомВначале нужно взять файл menu.js и поместить в директорию «js» вместе с остальными скриптами. Директория находится в корне сайта. В результате должен получиться такой путь к файлу js/menu.js
Далее устанавливаем из галереи плагинов OJS Custom Header Plugin
Для этого в административной панели OJS идем: Settings >>> Website >>> Plugins >>> Plugin Gallery… нажимаем на название плагина и во всплывающем окне кнопку Install
Далее идем на страницу со всеми установленными плагинами Settings >>> Website >>> Plugins, находим и активируем Custom Header Plugin. После этого нажимаем треугольник и Settings…
Будет всплывающее окно. В нем нужно прописать следующий код:
<script src="https://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> <script src="https://abg-journal.com/js/menu.js"></script>
Вместо abg-journal.com нужно прописать Ваш сайт.
2. Добавляем HTML код в боковую панельКод для меню в боковой панели можно взять из файла menu.html. Ссылки и названия элементов меню — заменить на собственные. Ниже представлена html разметка для меню в боковой панели:
<div> <ul> <li><a href="https://abg-journal.com/index.php/journal/issue/archive">ARCHIVE</a></li> <li><a href="#">2018</a> <ul> <li><a href="https://abg-journal.com/index.php/journal/issue/view/6">Vol 56 (2018)</a></li> <li><a href="https://abg-journal.com/index.php/journal/issue/view/5">Vol 55 (2018)</a></li> </ul> </li> <li><a href="#">2017</a> <ul> <li><a href="https://abg-journal.com/index.php/journal/issue/view/vol54">Vol 54 (2017)</a></li> <li><a href="https://abg-journal.com/index.php/journal/issue/view/vol53">Vol 53 (2017)</a></li> </ul> </li> <li><a href="#">2016</a> <ul> <li><a href="https://abg-journal.com/index.php/journal/issue/view/vol52">Vol 52 (2016)</a></li> <li><a href="https://abg-journal.com/index.php/journal/issue/view/vol51">Vol 51 (2016)</a></li> </ul> </li> <li><a href="https://abg-journal.com/index.php/journal/issue/archive">ALL ARCHIVE</a></li> </ul> </div>
Код HTML добавляется в пользовательский блок. Для этого идем: Settings >>> Website >>> Plugins >>> Custom Block Manager… нажимаем Manage Custom Blocks
Добавляем новый блок — Add Block, в который вносим сформированный HTML код и сохраняем результат.
Для каждой языковой версии сайта можно сделать отдельный блок с элементами меню на локальных языках.
3. Добавляем стиль CSS для оформления менюЧтобы придать нашему меню красивый внешний вид, нужно воспользоваться файлом menu.css. Код из этого файла можно добавить в пользовательскую таблицу стилей прямо из административной панели OJS. Для этого идем Settings >>> Website >>> Appearance. Находим блок Journal style sheet и загружаем файл menu.css с Вашего ПК.
Если Вы уже внесли какие-нибудь пользовательские стили оформления сайта, то вместо прямой загрузки файла нужно взять из него код и добавить к существующему файлу styleSheet.css.
Чтобы быстро перекрасить меню в другой цвет (сейчас — зеленый), нужно найти и заменить значение background всего в трех строках:
одно значение для строки с цветом:
background: #298a32;
и два значение для строк с цветом:
background: #2d9637;
Результат
Данный материал был сделан на основе TUTORIAL ANIMASI MENU OJS 3.1
Благодарим автора Ade Cahya, S.Kom за исходники. С уважением. Участники проекта OSU.
Создание панелей навигации с помощью списков CSS | Учебник CSS
Каждому веб-сайту необходима навигационная панель, которая помогает посетителям перемещаться по сайту. Обычно это достигается путем размещения верхней горизонтальной панели навигации или боковой вертикальной панели навигации.
Панели навигации создаются с использованием списков HTML в сочетании с CSS, чтобы они больше походили на меню с несколькими параметрами.
Пример:
Вертикальная панель навигации
Простой список — это вертикальная панель навигации, если мы сделаем каждый элемент списка гиперссылкой.
В приведенный выше список можно добавить несколько простых свойств CSS:
CSS:
#navbar {
тип-стиль-список: нет;
маржа: 0;
отступ: 0;
ширина: 200 пикселей;
цвет фона: #EEEEEE;
}
ul # navbar li a {
дисплей: блок;
цвет: # 000000;
font-weight: жирный;
отступ: 8 пикселей 16 пикселей;
текстовое оформление: нет;
}
ul # navbar li a: hover {
цвет фона: оранжевый;
цвет белый;
}
Всегда предпочтительно использовать какой-нибудь id
или class
для создания такого стиля.Потому что, если мы напрямую стилизуем элементы ul
и li
, как в примере ниже,
ul {
тип-стиль-список: нет;
маржа: 0;
отступ: 0;
ширина: 200 пикселей;
цвет фона: #EEEEEE;
}
li a {
дисплей: блок;
цвет: # 000000;
font-weight: жирный;
отступ: 8 пикселей 16 пикселей;
текстовое оформление: нет;
}
li a: hover {
цвет фона: оранжевый;
цвет белый;
}
, то все списки на нашем веб-сайте будут выглядеть как панель навигации, в то время как нам нужна только одна панель навигации на нашем веб-сайте, поэтому мы использовали идентификатор navbar
в нашем списке, что означает, что только элемент списка с navbar
идентификатор должен иметь такой стиль.
ul # navbar
означает элемент списка ul
с id = "navbar"
Живой пример →
Горизонтальная панель навигации
Когда мы создаем горизонтальную панель навигации, главный вопрос заключается в том, как преобразовать базовый список, который является вертикальным, в горизонтальный список. Это можно сделать двумя разными способами:
Использование дисплея
: встроенный
Мы можем использовать свойство CSS display: inline;
, чтобы удалить разрыв строки до и после каждого элемента списка, потому что по умолчанию элементы списка имеют свойство display: block; К ним добавлен
.
ul # navbar li {
дисплей: встроенный;
}
Живой пример →
Использование
float: слева
Другой способ создания горизонтальной панели навигации — это добавление float: left;
свойство CSS для всех элементов списка. Следовательно, они выстроятся в линию.
Вот код CSS:
#navbar {
тип-стиль-список: нет;
маржа: 0;
отступ: 0;
переполнение: скрыто;
цвет фона: #EEEEEE;
}
ul # navbar li {
плыть налево;
}
ul # navbar li a {
дисплей: блок;
цвет: # 000000;
font-weight: жирный;
отступ: 8 пикселей 16 пикселей;
текстовое оформление: нет;
}
Ниже мы объяснили, почему мы использовали то, что использовали в приведенном выше коде CSS, начиная с элементов списка:
-
поплавок: левый;
→ Чтобы все элементы списка перемещались влево, отображая их в строке. -
переполнение: скрыто;
→ Теперь, когда все элементы списка имеют свойствоfloat: left
добавлено к ним, поэтому элементы списка больше не будут внутри спискаul
, в результате чего списокul
будет занимать минимальную высоту, которая в этом случай нулевой. Мы применили цвет фона, чтобы продемонстрировать это. Следовательно, здесь используется хакoverflow
. Мы не использовалиoverflow: auto;
, потому что он иногда добавляет полосу прокрутки, что нам не нужно. -
дисплей: блок;
→ Используя это свойство CSS, мы делаем всю область ссылок интерактивной, а не только текст ссылки. -
отступ: 8 пикселей 16 пикселей;
→ Мы добавили отступ8px 16px
, что означает, что пустое пространство8px
будет добавлено вверху и внизу ссылки, а пустое пространство16px
будет добавлено слева и справа . Мы добавляем отступы, чтобы наше меню навигации выглядело просторным и чистым.
Живой пример →
примеров мобильного меню на CSS, которые стоит изучить
Надо признать, что сегодня мы живем в мобильном мире.Даже Google перешел на индекс, ориентированный на мобильные устройства, что означает, что Google будет ранжировать ваш сайт на основе релевантности вашего мобильного контента и пользовательского опыта.
Ваша мобильная навигация должна быть точной, независимо от того, над каким веб-сайтом или приложением вы работаете. Однако создание адаптивного меню для мобильных устройств — непростая задача — на самом деле это баланс между функциональностью и пропорциями. Мобильное меню CSS должно быть плотным, легко нажимаемым и работать на экранах разных размеров.
По данным Localytics, 21% пользователей откажутся от мобильного приложения после того, как воспользуются им только один раз.Для этого есть много причин, но разочарование из-за плохой навигации стоит на первом месте. Люди предпочитают легкие вещи; им не нужны сложные интерфейсы.
Простое, хорошо продуманное мобильное меню CSS необходимо, если вы хотите создать интерфейс навигации, с которым пользователи могут легко взаимодействовать, где бы они ни находились и какое бы устройство они ни использовали.
Эта статья, созданная нашей командой из wpDataTables, покажет вам несколько отличных примеров различных идей мобильного меню CSS, которые вы можете попробовать на своем веб-сайте или в приложении.Читайте список!
Примеры мобильных меню CSSВам не нужно изобретать велосипед или обладать специальными знаниями, чтобы получить адаптивный дизайн меню. Но вам нужно понимать, что пользовательский опыт имеет приоритетное значение.
Хороший внешний вид, конечно, важен, но когда дело доходит до меню, вы должны сначала убедиться, что они практичны и имеет смысл в структуре навигации.
Имеет ли смысл иметь 100 ссылок меню на каждую страницу вашего сайта? Нет.Имеет ли смысл делать пункты меню настолько маленькими, чтобы их могли касаться только люди с маленькими пальцами? Нет. Это необходимые соображения, хотя, к счастью, это не ракетостроение.
Ниже вы найдете список примеров, которые показывают, как создавать адаптивные мобильные меню, которые подходят для всех типов мобильных пользователей. Каждый из них представляет собой мобильное меню CSS, которое обеспечивает правильный адаптивный дизайн для многих различных типов устройств.
Мобильное меню — CSSКогда вы перемещаете элементы с большого экрана на маленький, вам нужно пойти на несколько компромиссов.В большинстве случаев дизайнеры хотят избежать этих компромиссов и пытаются получить универсальный дизайн, который можно было бы легко использовать на экранах любого размера.
Полноэкранное меню, подобное этому, может быть потрясающим, поскольку оно выглядит и ощущается одинаково на компьютерах, телефонах и планшетах.
Базовое адаптивное «трехстрочное» меню (CSS и jQuery)В этом руководстве вы узнаете, как быстро создать адаптивное мобильное меню на CSS. Вам также нужно будет использовать jQuery, но не расстраивайтесь; это очень маленький фрагмент кода.
Темное меню только для CSSЕсли вы хотите получить очень простое меню навигации, вам следует попробовать это руководство. Полоса горизонтальная, с классическими раскрывающимися списками, пока окно не станет достаточно маленьким.
После этой отзывчивой точки останова навигация превратится в полноэкранное мобильное меню, которое отлично выглядит.
Анимированная доступная навигацияЗдесь показан круглый значок меню навигации, который становится восхитительно анимированным при нажатии на него.
Адаптивная кнопка навигацииЭто мобильное меню CSS поддерживает вложение с различными стилями кнопок. Он имеет различные эффекты перехода и может быть легко добавлен в любой макет.
Морфинг мобильной навигации по гамбургерам с помощью JavaScript и CSS3Ознакомьтесь с этой концепцией мобильной навигации, если вы хотите, чтобы меню было простым в использовании и знакомым пользователям.
Многоуровневое адаптивное менюВ данном руководстве основное внимание уделяется jQuery и CSS для создания раскрывающегося меню с 3 уровнями.Что в нем круто, так это то, что меню полностью адаптивно и может сжиматься, чтобы соответствовать любому типу устройства.
3D-отзывчивая мобильная строка менюЕсли вы искали мобильное меню CSS, которое отлично работает и на рабочем столе, это отличный выбор. При размере настольного компьютера он имеет горизонтальный список пунктов меню с 3D-эффектами, а при размере мобильного устройства он становится надежным адаптивным мобильным меню.
Выпадающее меню с плавным откликом — верхний ящикВ этом руководстве вы узнаете, как создать более плавное отображение мобильного меню, которое использует CSS3 и не анимируется в JavaScript.После того, как вы нажмете на значок меню, появится стиль раскрывающегося списка, который выглядит красиво и может хорошо работать с любым устройством, которое вы имеете в виду.
Плавное затуханиеМеню навигации с постепенным исчезновением изображения популярны, и их действительно легко создать. Они работают, используя классы CSS, чтобы преобразовать меню в полностраничный интерфейс, особенно подходящий для небольших экранов.
Анимация мобильного менюВ этом дизайне мобильного меню вы получаете отличный анимационный эффект, который делает его особенным.Значок меню гамбургера специально размещен в центре, чтобы приспособить его как для правшей, так и для левшей.
Эй, а вы знали, что данные тоже могут быть красивыми?
wpDataTables может сделать это таким образом. Есть веская причина, почему это плагин WordPress №1 для создания адаптивных таблиц и диаграмм.
Реальный пример wpDataTables в дикой природеИ действительно легко сделать что-то вроде этого:
- Вы предоставляете данные таблицы
- Настроить и настроить
- Опубликовать в сообщении или на странице
И это не только красиво, но и практично.Вы можете создавать большие таблицы, содержащие до миллионов строк, или вы можете использовать расширенные фильтры и поиск, или вы можете пойти на нет и сделать их доступными для редактирования.
«Да, но я просто слишком люблю Excel, а на веб-сайтах ничего подобного нет». Да, есть. Вы можете использовать условное форматирование, как в Excel или Google Sheets.
Я говорил вам, что вы тоже можете создавать диаграммы с вашими данными? И это лишь малая часть. Для вас есть много других функций.
Панель навигации BootstrapНа дизайн этого мобильного меню повлияла популярная библиотека интерфейсных компонентов Bootstrap.Его отличает то, что он не использует JavaScript — только HTML и CSS.
Адаптивная навигация по заголовку только CSS — LuxbarLuxbar — это библиотека CSS, которая используется для создания гибкой, удобной для мобильных устройств навигации по заголовкам, которая полностью настраивается с помощью различных классов CSS. С помощью всего лишь нескольких настроек он может помочь вам получить мобильное меню CSS, которое вам нужно.
Меню с эффектами прокруткиЭто мобильное меню с потрясающими эффектами прокрутки и наведения.Он отлично подходит для улучшения взаимодействия с пользователем на интерактивном веб-сайте.
Адаптивное плоское менюАдаптивное плоское меню с двумя подменю — это то, что вы здесь. Он идеально подходит для организации обширных категорий.
Простая адаптивная навигацияИз этого руководства вы получите очень простой подход, который поможет вам создать адаптивное меню с нуля с помощью CSS3. Это хорошее начало для изучения того, как создавать меню для небольших экранов мобильных устройств.
Дизайн мобильного меню 3Это мобильное меню CSS имеет различные эффекты анимации, которые делают меню крутым. Эффекты бывают быстрыми, поэтому пользователи не теряют терпение. Вместе с меню навигации вы даже можете добавлять различные кнопки действий.
Мега-меню на чистом CSSТемы онлайн-журналов часто используют мегаменю для размещения статей в своих меню. Эти типы мобильных меню CSS выглядят великолепно и очень хорошо работают в определенных ситуациях.
Текстурированное гибкое раскрывающееся меню для мобильных устройствЭто текстурированное гибкое раскрывающееся меню, которое может превратить существующее многоуровневое меню в классное раскрывающееся меню для смартфонов.
Переключатель очистки раскрывающегося спискаМобильная навигация должна быть простой для всех пользователей. Если это то, чего вы хотите достичь, попробуйте это раскрывающееся меню, созданное только с использованием CSS.
Переключатель мобильного меню с адаптивной навигациейЭто навигационное меню довольно популярно среди мобильных приложений.Хорошо известный значок меню гамбургера используется вместе с простым дизайном. Попробуйте и убедитесь, что это то, что вам нужно.
Многоуровневое переключение адаптивного меню навигации с использованием чистого CSSЭто аккуратное мобильное меню на CSS с удобной навигацией, которое подходит для всех мобильных устройств с экраном.
Мобильное меню в стиле AppleЭто мобильное меню вдохновлено меню Apple, оно стильное и функциональное.
Базовое адаптивное менюЭто общее навигационное меню, которое раскрывается сверху. Это было сделано с помощью HAML и SCSS с небольшим количеством JavaScript.
Адаптивное раскрывающееся меню на чистом CSS, совместимое с мобильными устройствамиОбратите внимание на это мобильное меню CSS, которое легко меняется на переключаемое раскрывающееся меню после определенной точки останова. Это аккуратно, просто и эффективно.
Заключение этих примеров мобильного меню на CSSВ заключение скажу, что поиск мобильного меню CSS, которое работает для вашего веб-сайта или приложения, — это действие, которое вы не можете пропустить.Меню — это один из первых элементов, с которым взаимодействует пользователь, и вы хотите, чтобы он им понравился.
Помимо создания хорошего первого впечатления, правильно реализованное мобильное меню обеспечивает длительное удобство использования и не дает пользователям покинуть корабль из-за разочарования.
Если вам понравилось читать эту статью о примерах мобильных меню CSS, вы должны проверить эту статью об эффектах свечения текста CSS.
Мы также писали о нескольких связанных предметах, таких как окно поиска HTML, галерея изображений CSS, редактор CSS, переходы страниц CSS и эффекты наведения изображения CSS.
Стилизация панели навигации с помощью CSS • Код в Интернете
Панели навигации можно найти практически на любом веб-сайте в Интернете. Узнайте, как кодировать и стилизовать один в этой статье!
Конечный продукт
Вот что мы будем делать сегодня:
Здесь вы можете увидеть живую демонстрацию.
Терминология
Лол, это звучит как начало юридического соглашения 😂
Для целей этой статьи панель навигации (панель навигации) — это то же самое, что и заголовок.Я буду использовать термин «навигационная панель» в этой статье, но просто знаю, что они в основном одинаковы.
Начало работы
Я рекомендую вам следовать каждому из моих руководств — это действительно поможет вам быстрее изучить и понять концепции. Программировать будет интересно, особенно в подобных уроках.
Для начала создайте новую папку проекта и создайте внутри пустые файлы index.html
и style.css
. Пойдем и наполним их!
HTML
Как вы знаете, HTML — это начало любого веб-сайта.Добавьте в файл index.html
следующее:
Панель навигации DEMO
<заголовок>
<основной>
Lorem ipsum dolor sit amet, conctetur adipiscing elit.In consquat libero eget magna Commodo, quis pharetra tellus pretium. Sed viverra ante in mauris finibus dapibus. Maecenas congue dapibus nulla, eu gravida orci consquat eu. Phasellus nec nunc malesuada, aliquam massa ac, accumsan metus. Fusce sed dignissim lectus. Nunc elit tellus, sollicitudin ac accumsan ut, egestas et dui. Maecenas aliquam est a ligula scelerisque, в aliquam neque sodales. Nullam condimentum euismod dictum. Curabitur non ex elementum, pretium enim ut, ornare ipsum.
Внутри тела у нас есть заголовок и элементы навигации.Если вы не знакомы с этой структурой панели навигации в HTML, прочтите эту статью.
Под заголовком у нас есть фиктивный текст внутри элемента
. Это сделано для того, чтобы мы могли видеть проблемы, которые возникнут позже в этом руководстве.
Откройте файл index.html
в браузере — на этом этапе он должен выглядеть так:
Обратите внимание, что вам, вероятно, придется прокрутить вниз, если только вы не сильно уменьшите масштаб, потому что наше изображение огромно!
Время для нашего CSS…
Базовый CSS
Во-первых, наше изображение слишком велико.Давайте уменьшим его до высоты 80px
— это будет высота нашей навигационной панели. Добавьте в файл style.css
следующее:
header img {
высота: 80 пикселей;
}
Результат:
Уф, теперь я могу дышать 😅
Теперь давайте настроим наш стиль, чтобы мы могли видеть, что происходит. Прежде всего, мы хотим иметь возможность прокрутки — мы можем сделать это, установив высоту
на 125vh
(высота области просмотра).Мы хотим иметь возможность видеть при прокрутке вниз, и мы можем сделать это, добавив фоновое изображение
. Пока мы занимаемся этим, давайте установим наш шрифт на без засечек
, чтобы он не выглядел так ужасно. Вот код CSS:
header img {
высота: 80 пикселей;
}
тело {
высота: 125vh;
фоновое изображение: url ('https://codetheweb.blog/assets/img/posts/style-a-navigation-bar-css/background.jpg');
размер фона: обложка;
семейство шрифтов: без засечек;
}
Еще одна вещь, давайте добавим цвет
к нашему
, чтобы мы могли лучше видеть фиктивный текст:
header img {
высота: 80 пикселей;
}
тело {
высота: 125vh;
background-image: url ('https: // codetheweb.blog / assets / img / posts / style-a-navigation-bar-css / background.jpg ');
размер фона: обложка;
семейство шрифтов: без засечек;
}
главный {
цвет белый;
}
Вот результат всего этого:
Не беспокойтесь об изменении цвета ссылок, потому что мы все равно будем стилизовать их позже.
Размещение навигационной панели
Хорошо, теперь наш веб-сайт выглядит нормально — но не наша навигационная панель! Он по-прежнему выглядит как список, потому что всякий раз, когда вы создаете панель навигации, она должна иметь определенную структуру (та, которая содержит
).Это связано с тем, что поисковым роботам легче ориентироваться, и вы также понравитесь Google 😉
Прежде всего, давайте начнем с размещения фактического элемента
. Мы также хотим присвоить
цвет фона
, чтобы мы могли видеть его положение. Давайте добавим стили!
заголовок img {
высота: 80 пикселей;
}
тело {
высота: 125vh;
background-image: url ('https://codetheweb.blog/assets/img/posts/style-a-navigation-bar-css/background.jpg ');
размер фона: обложка;
семейство шрифтов: без засечек;
}
главный {
цвет белый;
}
header {
цвет фона: белый;
положение: фиксированное;
верх: 0;
слева: 0;
справа: 0;
высота: 80 пикселей;
}
Здесь мы позиционируем элемент
, используя позицию : фиксированная
. Затем мы также устанавливаем высоту
на 80px
, как я упоминал ранее (единственная причина, по которой мы используем эту особенность, — это то, что она хорошо выглядит).
Вот результат:
Ура, наш заголовок / панель навигации теперь позиционируются! Однако фиктивный текст в
был скрыт 😕
Теперь, когда навигационная панель имеет позицию
из фиксированного
, остальное содержимое на странице перемещается вверх.Это означает, что основной текст на самом деле под нашей навигационной панелью!
Чтобы исправить это, нам просто нужно дать телу margin-top
, равным высоте навигационной панели, 80px
:
header img {
высота: 80 пикселей;
}
тело {
высота: 125vh;
фоновое изображение: url ('https://codetheweb.blog/assets/img/posts/style-a-navigation-bar-css/background.jpg');
размер фона: обложка;
семейство шрифтов: без засечек;
маржа сверху: 80 пикселей;
}
главный {
цвет белый;
}
header {
цвет фона: белый;
положение: фиксированное;
верх: 0;
слева: 0;
справа: 0;
высота: 80 пикселей;
}
Результат:
Woo! Единственное, что теперь текст находится прямо напротив нижней части навигационной панели 😕 Давайте исправим это, добавив несколько отступов
(я совершенно не хотел, чтобы это рифмалось 😂) — вот CSS:
header img {
высота: 80 пикселей;
}
тело {
высота: 125vh;
background-image: url ('https: // codetheweb.blog / assets / img / posts / style-a-navigation-bar-css / background.jpg ');
размер фона: обложка;
семейство шрифтов: без засечек;
маржа сверху: 80 пикселей;
отступ: 30 пикселей;
}
главный {
цвет белый;
}
header {
цвет фона: белый;
положение: фиксированное;
верх: 0;
слева: 0;
справа: 0;
высота: 80 пикселей;
}
Результат:
Намного лучше!
Вот поля
и отступ визуализированного тела:
(поля оранжевые, отступы зеленые, а основная часть тела синяя)
Поздравляю, теперь у нас есть красивая страница много работает! Однако не материал внутри
- он перекрывает остальной текст и выглядит плохо.
Стилизация содержимого навигационной панели
Теперь давайте разместим элементы внутри навигационной панели! Прежде всего, мы хотим, чтобы элементы располагались горизонтально, а не вертикально. Мы можем сделать это с помощью display: inline
:
header img {
высота: 80 пикселей;
}
тело {
высота: 125vh;
фоновое изображение: url ('https://codetheweb.blog/assets/img/posts/style-a-navigation-bar-css/background.jpg');
размер фона: обложка;
семейство шрифтов: без засечек;
маржа сверху: 80 пикселей;
отступ: 30 пикселей;
}
главный {
цвет белый;
}
header {
цвет фона: белый;
положение: фиксированное;
верх: 0;
слева: 0;
справа: 0;
высота: 80 пикселей;
}
header * {
дисплей: встроенный;
}
Здесь мы используем заголовок селектора *
. *
- это подстановочный знак и может означать любой элемент. Таким образом, заголовок *
в основном означает любой элемент внутри заголовка
. Также обратите внимание, что когда мы используем display: inline
, маркеры исчезают. Причина, по которой маркеры появляются в первую очередь, заключается в том, что по умолчанию элементы
имеют тип display
из list-item
. Поэтому, когда мы переопределяем это и меняем его на inline
, маркеры исчезают.
Вот результат:
Однако теперь наши ссылки идут в нижнюю часть навигационной панели! Мы можем заставить их переходить в верхнюю часть навигационной панели, задав нашему элементу
свойство display
flex
:
header img {
высота: 80 пикселей;
}
тело {
высота: 125vh;
фоновое изображение: url ('https://codetheweb.blog/assets/img/posts/style-a-navigation-bar-css/background.jpg');
размер фона: обложка;
семейство шрифтов: без засечек;
маржа сверху: 80 пикселей;
отступ: 30 пикселей;
}
главный {
цвет белый;
}
header {
цвет фона: белый;
положение: фиксированное;
верх: 0;
слева: 0;
справа: 0;
высота: 80 пикселей;
дисплей: гибкий;
}
header * {
дисплей: встроенный;
}
Результат:
Однако текст по-прежнему не выровнен по вертикали по середине панели навигации.Мы можем вертикально выровнять наши элементы на панели навигации, используя align-items: center
. Если вы не знаете о display: flex
или align-items: center
, ознакомьтесь с моим руководством по flexbox. Вот код CSS:
header img {
высота: 80 пикселей;
}
тело {
высота: 125vh;
фоновое изображение: url ('https://codetheweb.blog/assets/img/posts/style-a-navigation-bar-css/background.jpg');
размер фона: обложка;
семейство шрифтов: без засечек;
маржа сверху: 80 пикселей;
отступ: 30 пикселей;
}
главный {
цвет белый;
}
header {
цвет фона: белый;
положение: фиксированное;
верх: 0;
слева: 0;
справа: 0;
высота: 80 пикселей;
дисплей: гибкий;
align-items: center;
}
header * {
дисплей: встроенный;
}
Результат:
Однако все ссылки на панели навигации очень сжаты вместе - мы можем увеличить их интервал, задав им поле margin
property:
header img {
высота: 80 пикселей;
}
тело {
высота: 125vh;
background-image: url ('https: // codetheweb.blog / assets / img / posts / style-a-navigation-bar-css / background.jpg ');
размер фона: обложка;
семейство шрифтов: без засечек;
маржа сверху: 80 пикселей;
отступ: 30 пикселей;
}
главный {
цвет белый;
}
header {
цвет фона: белый;
положение: фиксированное;
верх: 0;
слева: 0;
справа: 0;
высота: 80 пикселей;
дисплей: гибкий;
align-items: center;
}
header * {
дисплей: встроенный;
}
header li {
маржа: 20 пикселей;
}
Результат:
Так выглядит лучше! Теперь, когда элементы нашей навигационной панели расположены, пришло время придать им несколько стилей! Мы хотим убрать уродливые стили ссылок по умолчанию, поэтому давайте продолжим и сделаем это - мы можем установить цвет с
на черный
и текстовое оформление с
на без
(обычно это будет подчеркивание
) .Вот код CSS:
header img {
высота: 80 пикселей;
}
тело {
высота: 125vh;
фоновое изображение: url ('https://codetheweb.blog/assets/img/posts/style-a-navigation-bar-css/background.jpg');
размер фона: обложка;
семейство шрифтов: без засечек;
маржа сверху: 80 пикселей;
отступ: 30 пикселей;
}
главный {
цвет белый;
}
header {
цвет фона: белый;
положение: фиксированное;
верх: 0;
слева: 0;
справа: 0;
высота: 80 пикселей;
дисплей: гибкий;
align-items: center;
}
header * {
дисплей: встроенный;
}
header li {
маржа: 20 пикселей;
}
header li a {
черный цвет;
текстовое оформление: нет;
}
Результат:
Мы на последнем отрезке! Наш логотип (ну, технически мой логотип) выглядит немного странно, поэтому давайте исправим позиционирование, добавив с полем слева
! Вот код CSS:
header img {
высота: 80 пикселей;
маржа слева: 40 пикселей;
}
тело {
высота: 125vh;
background-image: url ('https: // codetheweb.blog / assets / img / posts / style-a-navigation-bar-css / background.jpg ');
размер фона: обложка;
семейство шрифтов: без засечек;
маржа сверху: 80 пикселей;
отступ: 30 пикселей;
}
главный {
цвет белый;
}
header {
цвет фона: белый;
положение: фиксированное;
верх: 0;
слева: 0;
справа: 0;
высота: 80 пикселей;
дисплей: гибкий;
align-items: center;
}
header * {
дисплей: встроенный;
}
header li {
маржа: 20 пикселей;
}
header li a {
черный цвет;
текстовое оформление: нет;
}
Результат:
Намного эстетичнее! 😘
Хорошо, это последнее на сегодня, и это очень круто.Мы собираемся добавить тень к нашей панели навигации. Какие? Тень? Я думал, это то, что можно делать только в фотошопе ???
Что ж, хотите верьте, хотите нет, у CSS есть собственный способ создания теней - на самом деле, несколько способов! В другой статье я более подробно рассмотрю все различные типы теней CSS.
На данный момент мы будем использовать свойство box-shadow
. Он просто создает прямоугольную тень вокруг элемента.
Вот синтаксис для свойства box-shadow
:
x-offset
и y-offset
- это расстояние от стороны и вверх / вниз до тени, blur
- насколько размыта shadow есть, а spread
- насколько далеко от элемента распространяется тень.Все эти значения могут быть отрицательными, кроме blur
. После этого у нас есть цвет, которого мы хотим, чтобы тень была. Давайте добавим очень простую (но эффективную) тень на нашу панель навигации:
header img {
высота: 80 пикселей;
маржа слева: 40 пикселей;
}
тело {
высота: 125vh;
фоновое изображение: url ('https://codetheweb.blog/assets/img/posts/style-a-navigation-bar-css/background.jpg');
размер фона: обложка;
семейство шрифтов: без засечек;
маржа сверху: 80 пикселей;
отступ: 30 пикселей;
}
главный {
цвет белый;
}
header {
цвет фона: белый;
положение: фиксированное;
верх: 0;
слева: 0;
справа: 0;
высота: 80 пикселей;
дисплей: гибкий;
align-items: center;
box-shadow: 0 0 25px 0 черный;
}
header * {
дисплей: встроенный;
}
header li {
маржа: 20 пикселей;
}
header li a {
черный цвет;
текстовое оформление: нет;
}
Как видите, здесь мы используем только размытие
- мы устанавливаем остальные значения ( x-offset
, y-offset
и spread
) на 0
.Вот результат:
Отлично !!! Наша панель навигации теперь имеет тень !!! 🎉
На сегодня все
Заключение
Итак, я надеюсь, что вы узнали много нового из этой статьи! Теперь вы можете создавать свои собственные панели навигации. Они используются почти на каждом веб-сайте, который вы посещаете, поэтому очень важно знать, как кодировать.
В будущем я буду писать руководство о том, как стилизовать адаптивную панель навигации , что означает, что она будет адаптироваться к разным размерам экрана (например,показывать значок «меню» на мобильном телефоне).
А пока мне бы очень понравилось, если бы вы поделились этим или подписались на информационный бюллетень, чтобы получать новые сообщения в свой почтовый ящик. Если вы сделаете что-то из этого, вы великолепны, и я дам вам пожизненный запас тако 🌮 (не совсем, просто моя новая маркетинговая тактика).
Получайте удовольствие, продолжайте кодировать, и я увижу вас в следующий раз, где я буду говорить о значках веб-сайтов в HTML (я подумал, что немного изменим его и сделаю HTML). Тогда увидимся!
20 лучших бесплатных шаблонов меню веб-сайтов (Bootstrap) 2021
Изучив множество бесплатных шаблонов меню веб-сайтов на основе Bootstrap, мы решили создать свои собственные версии.
Почему? Если он не заслуживает 100% доверия, мы не передаем его.
Мы засучили рукава, пошли за кодом и вот мы здесь.
Мы позаботились о создании всевозможных различных примеров меню веб-сайтов.
Минимальная, прозрачная, боковая панель, не на холсте, вы получаете любую возможную навигацию по страницам , какую захотите.
Веселье на этом не заканчивается.
У каждого шаблона есть удобный код. Это делает его идеальным для новичков и для быстрой настройки.
Поднимите свой веб-сайт на НОВЫЙ УРОВЕНЬ.
Да, вы будете!
Выбор шаблона меню нашего лучшего веб-сайта
Меню веб-сайта V03
Веб-сайт Menu V03 - это современный бесплатный сниппет для создания чистой и минимальной панели навигации. Если вы хотите придерживаться ПРОСТОТЫ, не упустите возможность взглянуть на этот инструмент.
Это решение, которое отлично работает, если вы планируете добавить изображение или даже видео в качестве фона над сгибом.
Таким образом, не будет отвлекать контент, но при этом обеспечит отличную навигацию.
Более того, Меню веб-сайта V03 представляет собой шаблон статического меню с прохладной синей кнопкой, которая появляется при нажатии. Кроме того, он также включает многоуровневое раскрывающееся меню, которое хорошо подходит, если у вас много страниц и категорий. Он тоже отзывчивый.
Подробнее / СкачатьМеню веб-сайта V05
Но если вы действительно хотите придерживаться ИСКЛЮЧИТЕЛЬНОЙ чистоты в области заголовка вашего веб-сайта, вам лучше всего подойдет Меню веб-сайта V05.
Хотя на первый взгляд не так много, значок меню при нажатии открывает гамбургер-меню на боковой панели.Меню веб-сайта V05 сохраняет тот же стиль на маленьких и больших экранах , прекрасно адаптируясь к мобильным устройствам.
Мы также позаботились о том, чтобы структура кода была удобной как для пользователей, так и для новичков.
УРА.
Теперь каждый может использовать этот бесплатный шаблон меню и без проблем встроить его в свое веб-приложение.
Но сначала взгляните на предварительный просмотр демо-версии и переходите оттуда.
Подробнее / СкачатьМеню веб-сайта V07
Заголовок может сделать ваш сайт утомительным, но это не относится к Меню веб-сайта V07.Благодаря прозрачному дизайну в нем можно разместить немало ВЕЩЕЙ, но он не будет так сильно выделяться, как сплошные заголовки, да.
Ваша чашка чая?
Это здорово.
Меню веб-сайтаV07 полностью настроено и готово к использованию прямо из коробки или даже к дальнейшему оформлению.
Кстати, наряду с основной панелью навигации, есть также верхняя панель для дополнительной контактной информации и значков социальных сетей.
Подробнее / СкачатьМеню веб-сайта V12
Website Menu V12 - это бесплатный шаблон навигации, который умеет сочетать простоту и смелость.В верхней части есть только логотип и значки социальных сетей, а также светлый / прозрачный фон.
С другой стороны, панель навигации имеет сплошной цвет, а раздел выделен другим цветом. Очень динамично, если хотите.
Еще две интересные особенности Website Menu V12 - это интегрированное раскрывающееся меню и форма поиска. Если пользователь не находит то, что ему нужно, прямо в меню, он ВСЕГДА может ввести это в поиск.
Website Menu V12 также безупречно работает на мобильных устройствах, но дизайн немного изменился.Более. Пользователь. Дружелюбный.
Подробнее / СкачатьМеню веб-сайта V14
Меню веб-сайта V14 довольно простое, с квадратным дизайном, который выделяет его. Всегда есть способ придерживаться простоты, но с ПРИМЕНИМОЙ креативности.
Имейте в виду, что как только вы начнете исследовать меню веб-сайта V14 дальше, вы заметите изменения дизайна на мобильных устройствах или наоборот. Светлый на рабочем столе и темный на мобильном телефоне.
Это не то.
Хотя логотип и значки социальных сетей все еще присутствуют на мобильных устройствах, навигация выглядит как гамбургер-меню.И чтобы оживить обстановку, розовая деталь определенно делает ее еще более привлекательной.
Тем не менее, если вы хотите внести какие-либо правки, продолжайте и вносите их.
Подробнее / СкачатьМеню веб-сайта V18
Меню веб-сайта V18 не так уж и много, но все меняется, когда вы нажимаете на него. По крайней мере, когда вы щелкаете элемент с шевроном - тогда открывается МЕГА МЕНЮ.
Тем не менее, веб-сайт Menu V18 идеально подходит для всех, кто заинтересован в добавлении в меню большего количества материала, чем просто текста.Другими словами, этот бесплатный шаблон меню веб-сайта также поддерживает графическое содержимое.
Примечание : поскольку изображения и текст могут слишком сильно отвлекать пользователя на мобильном телефоне, мы добавили только текстовую часть меню веб-сайта V18.
Но, как и любой другой шаблон в этой коллекции, вы можете сначала протестировать его на разных устройствах, посетив предварительный просмотр элемента в реальном времени.
Подробнее / СкачатьМеню веб-сайта V19
Кто не хочет добавить Боковое меню на свой веб-сайт или в блог? Если вы поклонник, вы станете свидетелем быстрого включения в меню веб-сайта V19.
Он отличается легким дизайном с эффектом выделения, который добавляет цвет и подчеркивает текст. Это УМНЫЙ СПОСОБ показать, на какой странице вашего сайта находится ваш пользователь.
Ваш контент может быть настолько привлекательным, что вы полностью погружаетесь в него, забывая о том, что происходит вокруг.
Так или иначе, Website Menu V19 также отлично гармонирует со смартфонами и планшетами. Тем не менее, он превращается в меню вне холста - для ПРАКТИЧНОСТИ - при просмотре на небольших устройствах.
Подробнее / СкачатьМеню веб-сайта V20
Это последний бесплатный шаблон меню веб-сайта из наших ЛУЧШИХ выборов - и он определенно мой любимый. Меню веб-сайта V20 - это полноэкранное меню или, как некоторые его называют, оверлейное меню.
Он только качает значок меню, но затем отображает все меню, которое полностью перекрывает содержимое , которое вы просматриваете. В этой коллекции нет другой навигации, которая так смело бы размещала меню.
Право. В. Их. Лицо.
Website Menu V20 также сохраняет тот же стиль, независимо от того, просматриваете ли вы его на мобильном или настольном устройстве. Кроме того, он кажется темным в конфигурации по умолчанию, но вы можете настроить это при необходимости.
Подробнее / СкачатьБонусные бесплатные шаблоны меню веб-сайтов
Помимо наших лучших вариантов, есть еще несколько бесплатных альтернатив меню. Имейте в виду, в некоторых случаях - это всего лишь небольшие вариации вышеперечисленного.
Меню веб-сайта V01
А теперь давайте начнем с меню веб-сайта V01.Это бесплатный сниппет для всех, кто предпочитает элементы Minimal . Он также имеет раздел с логотипом, кнопки социальных сетей и раскрывающийся список, который состоит из двух слоев.
Подходит ли мобильный?
КОНЕЧНО, да!
Но это то, что вы можете предварительно проверить.
Подробнее / СкачатьМеню веб-сайта V02
Меню веб-сайта V02 еще проще, чем выше. Если у вас не так много страниц или категорий, эта подойдет вам очень хорошо.
Он ТАКЖЕ сохраняет такой же минималистичный стиль на мобильных устройствах. Но он ВСТАВЛЯЕТСЯ с правой стороны как гамбургер-меню.
Подробнее / СкачатьМеню веб-сайта V04
Меню веб-сайта V04 больше похоже на ПОЛНЫЙ заголовок, который также действует как липкая навигация. Если вы новичок в этом, то при прокрутке это панель навигации, которая прилипает к верхней части экрана.
Всегда доступен.
Помимо области главного меню, есть еще и верхняя панель. Вы можете использовать этот раздел для , добавив дополнительные контактные данные , например адрес электронной почты и номер телефона.Кроме того, в меню веб-сайта V04 есть пространство социальных иконок.
Подробнее / СкачатьМеню веб-сайта V06
Я уже добавил меню, подобное меню веб-сайта V06 выше, только эта функция оставила позиционирования.
Что ж, если правильная версия не подходит для вас, это альтернатива, которую вы можете получить одним щелчком мыши.
Так же просто, как кажется.
Подробнее / СкачатьМеню веб-сайта V08
Бесплатных вариантов шаблонов меню для веб-сайтов никогда не бывает достаточно, ПРАВИЛЬНО?
Website Menu V08 - еще один превосходный фрагмент кода , который поможет вам начать работу без необходимости начинать с нуля.В нем не так много, кроме текста, раскрывающегося списка и кнопки CTA.
Но для некоторых этого БОЛЬШЕ, ЧЕМ ДОСТАТОЧНО.
Подробнее / СкачатьМеню веб-сайта V09
Предшественник был более общим шаблоном меню веб-сайта, в то время как меню веб-сайта V09 по умолчанию ориентировано на доски объявлений . Он даже поставляется со СПЕЦИАЛЬНЫМИ разделами, которые вы можете активировать.
Но для всех смелых, не стесняйтесь изменять Меню веб-сайта V09 по своему вкусу и идти вразрез с нормами.
Подробнее / СкачатьМеню веб-сайта V10
Меню веб-сайта V10 имеет прочную панель навигации с центрированным логотипом и тремя пунктами меню с каждой стороны. Однако дизайн полностью изменяет на мобильном телефоне , вставляя его справа (гамбургер-меню). Подробнее / Скачать
Меню веб-сайта V11
Вот ВЕСЕЛО, которое может подойти для ресторанов или даже для чего-то совершенно другого. Другими словами, выполнив несколько настроек в меню веб-сайта V11, вы можете легко применить к другому бизнесу, поскольку для этого требуется только изменение текста.
НО.
Вы также можете играть с разными цветовыми комбинациями или придерживаться синей / оранжевой схемы.
Подробнее / СкачатьМеню веб-сайта V13
Меню веб-сайта V13 - ВЕЛИКИЙ пример того, как можно сочетать минималистский дизайн с практичностью .
Этот бесплатный шаблон меню веб-сайта легко работает для бизнес-сайтов, блогов и других проектов, над которыми вы работаете.
Световой дизайн на мобильных устройствах меняется на ТЕМНЫЙ - чтобы вы знали. И вы также получаете панель поиска и раскрывающийся список.
Подробнее / СкачатьМеню веб-сайта V15
Вы планируете создать интернет-магазин? Нет необходимости делать все с нуля, так как вы можете импортировать меню веб-сайта V15 и разобраться с его навигацией.
Основной особенностью бесплатного шаблона является значок тележки с раскрывающимся списком при наведении курсора для различных действий.
Подробнее / СкачатьМеню веб-сайта V16
Меню веб-сайта V16 предназначено для всех, кто ищет еще разделов и элементов в бесплатном шаблоне меню веб-сайта.Он имеет верхнюю панель, социальные кнопки, раскрывающийся список и форму поиска.
Несмотря на то, что кое-что происходит, Меню веб-сайта V16 делает это с помощью СТИЛЯ.
Подробнее / СкачатьМеню веб-сайта V17
Меню веб-сайта V17 - это последний из наших бесплатных шаблонов меню веб-сайтов, который вы можете получить прямо сейчас. Это фантастическая и выдающаяся альтернатива, которая сразу же поможет вам продвинуться вперед . Меню веб-сайта
V17 выглядит красиво и динамично, независимо от того, просматриваете ли вы его на настольном компьютере или смартфоне.В нем есть весь необходимый JAZZ, так что вы избавите себя от написания кода с нуля.
Подробнее / СкачатьРаскрытие информации: Эта страница содержит внешние партнерские ссылки, которые могут привести к получению нами комиссии, если вы решите приобрести упомянутый продукт. Мнения на этой странице наши собственные, и мы не получаем дополнительных бонусов за положительные отзывы.
Создание вертикального и горизонтального меню с использованием чистого CSS
<
html
>
<
head
>
<
ссылка
отн
=
"таблица стилей"
HREF
=
целостность
=
"SHA384-nn4HPE8lTHyVtfCBi5yW9d20FjT8BJwUXyWZT9InLYax14RDjBj46LmSztkmNP9w"
crossorigin
=
"анонимный"
>
<
meta
name
=
" content
=
"width = device-width, initial-scale = 1.0 "
/>
головка
>
<
корпус
>
div
класс
=
«чистое меню»
>
<
диапазон
класс
=
«чистый заголовок меню»
>
GEEKFORGEEKS
диапазон
>
<
ul
класс
=
«чистый » меню -список " >
<
li
class
=
«чистый пункт меню»
>
<
a
href
=
"#"
class
=
"pure-menu-link"
>
Домашняя страница
a
>
li
>
<
li
class
=
«чистый пункт меню»
>
<
a
href
=
"# "
класс
=
" pure-menu-link "
>
О нас
a
>
li
>
<
li
класс
=
"pure-menu-item"
>
<
a
href
=
"#"
class
=
"pure-menu-link"
>
Контакт
a
>
li
>
<
li
class
=
class
«чистый пункт меню»
>
<
a
href
=
"#"
class
=
"pure-menu-link"
>
Политика конфиденциальности
< /
a
>
li
>
ul
>
2
/
div
>
body
>
html
>
Создание меню на HTML и CSS
Если ваш веб-сайт не ограничен одной веб-страницей, вам следует подумать о добавлении панели навигации (меню).Раздел меню веб-сайта разработан, чтобы помочь посетителю перемещаться по сайту. Любое меню - это список ссылок, ведущих на внутренние страницы сайта. Самый простой способ добавить панель навигации на сайт - создать меню с помощью CSS и HTML.
Вертикальное меню
Первым шагом в создании вертикального меню является создание неупорядоченного списка. Нам также нужно иметь возможность идентифицировать список, поэтому мы добавим к нему атрибут id
с идентификатором navbar
.Каждый элемент
нашего списка будет содержать одну ссылку:
Наша следующая задача - сбросить стили списка, установленные по умолчанию. Нам нужно удалить внешние и внутренние отступы возле списка и маркеры в элементах списка.Затем установите желаемую ширину:
#navbar { маржа: 0; отступ: 0; тип-стиль-список: нет; ширина: 100 пикселей; }
А теперь пора стилизовать сами ссылки. Мы добавим к ним цвет фона, изменим параметры текста: цвет, размер и насыщенность шрифта, удалим подчеркивание, добавим небольшие отступы и переопределим отображение элемента
со строчного на блочный. Кроме того, к элементам списка добавлены левая и нижняя рамки.
Самая важная часть наших изменений - это переопределение встроенных элементов для блокировки. Теперь наши ссылки занимают все доступное пространство элементов списка, то есть для перехода по ссылке нам больше не нужно наводить курсор точно на текст.
#navbar a { цвет фона: # 949494; цвет: #fff; отступ: 5 пикселей; текстовое оформление: нет; font-weight: жирный; граница слева: 5 пикселей твердое тело # 33ADFF; дисплей: блок; } #navbar li { граница слева: твердое тело 10 пикселей # 666; нижняя граница: твердое тело 1px # 666; }
Мы объединили весь код, описанный выше, в один пример, теперь, нажав на кнопку Попробуйте
, вы можете перейти на страницу с образцом и увидеть результат:
Попытайся "Заголовок страницы <стиль> #navbar { маржа: 0; отступ: 0; тип-стиль-список: нет; ширина: 100 пикселей; } #navbar li { граница слева: твердое тело 10 пикселей # 666; нижняя граница: твердое тело 1px # 666; } #navbar a { цвет фона: # 949494; цвет: #fff; отступ: 5 пикселей; текстовое оформление: нет; font-weight: жирный; граница слева: 5 пикселей твердое тело # 33ADFF; дисплей: блок; }
Когда вы наводите указатель мыши на пункт меню, его внешний вид может измениться, привлекая внимание пользователя.Вы можете создать этот эффект, используя псевдокласс : hover
.
Вернемся к предыдущему примеру вертикального меню и добавим в таблицу стилей следующее правило:
#navbar a: hover { цвет фона: # 666; граница слева: 5 пикселей твердое тело # 3333FF; }Попытайся "
Горизонтальное меню
В предыдущем примере мы рассмотрели вертикальную панель навигации, которая чаще всего находится на сайтах слева или справа от области основного содержимого.Однако меню с навигационными ссылками также часто располагается горизонтально вверху веб-страницы.
Вы можете создать горизонтальное меню, стилизовав обычный список. Свойство display
для элементов
должно быть установлено на inline
, чтобы элементы списка размещались один за другим.
Чтобы разместить пункты меню по горизонтали, сначала создайте неупорядоченный список со ссылками:
Давайте напишем для нашего списка пару правил, которые сбрасывают стиль, используемый для списков по умолчанию, и переопределяют элементы списка с блока на встроенный:
#navbar { маржа: 0; отступ: 0; тип-стиль-список: нет; } #navbar li {display: inline; }Попытайся "
Теперь нам нужно только определить дизайн стиля для нашего горизонтального меню:
#navbar { маржа: 0; отступ: 0; тип-стиль-список: нет; граница: 2px solid # 0066FF; радиус границы: 20 пикселей 5 пикселей; ширина: 550 пикселей; выравнивание текста: центр; цвет фона: # 33ADFF; } #navbar a { цвет: #fff; отступ: 5 пикселей 10 пикселей; текстовое оформление: нет; font-weight: жирный; дисплей: встроенный блок; ширина: 100 пикселей; } #navbar a: hover { радиус границы: 20 пикселей 5 пикселей; цвет фона: # 0066FF; }Попытайся "
Раскрывающееся меню
Меню, которое мы создадим, будет иметь основные навигационные ссылки, расположенные на горизонтальной панели навигации, и подпункты, которые будут отображаться только после наведения курсора мыши на пункт меню, к которому эти подпункты относятся.
Сначала нам нужно создать структуру HTML нашего меню. Основные навигационные ссылки мы разместим в неупорядоченном списке:
Мы поместим подпункты в отдельный список, заключив его в элемент
, который содержит родительскую ссылку на подпункты.Теперь у нас есть четкая структура для нашей будущей панели навигации:
Попытайся "
Теперь приступим к написанию кода CSS.Для начала вам нужно скрыть список подпунктов с помощью дисплея
, чтобы они не появлялись на веб-странице все время. Чтобы отобразить подпункты, нам нужно преобразовать список в элемент блока при наведении курсора на элемент display: none;
:
#navbar ul {display: none; } #navbar li: hover ul {display: block; }
Удалите отступы и маркеры по умолчанию из обоих списков. Элементы списка с навигационными ссылками сделаны плавающими, образуя горизонтальное меню, но для пунктов списка, содержащих подпункты, установите
, чтобы они отображались друг под другом. float: none;
#navbar, #navbar ul { маржа: 0; отступ: 0; тип-стиль-список: нет; } #navbar li {float: left; } #navbar ul li {float: none; }
Затем нам нужно убедиться, что наше раскрывающееся подменю не перемещает содержимое под панелью навигации вниз. Для этого мы установим элементы списка на
и список, содержащий позицию position: relative;
и добавьте свойство : absolute;
top
со значением 100%
, чтобы подменю с абсолютным позиционированием отображалось точно под ссылкой.
#navbar ul { дисплей: нет; позиция: абсолютная; верх: 100%; } #navbar li { плыть налево; положение: относительное; } #navbar {высота: 30 пикселей; }Попытайся "
Высота для родительского списка была добавлена специально, поскольку браузеры не принимают во внимание содержимое элемента как плавающее содержимое, то без добавления высоты наш список будет проигнорирован браузером, и содержимое, следующее за списком, будет обтекать наш список. меню.
Теперь нам нужно стилизовать оба наших списка, и выпадающее меню будет готово:
#navbar ul { дисплей: нет; цвет фона: # f90; позиция: абсолютная; верх: 100%; } #navbar li: hover ul {display: block; } #navbar, #navbar ul { маржа: 0; отступ: 0; тип-стиль-список: нет; } #navbar { высота: 30 пикселей; цвет фона: # 666; отступ слева: 25 пикселей; минимальная ширина: 470 пикселей; } #navbar li { плыть налево; положение: относительное; высота: 100%; } #navbar li a { дисплей: блок; отступ: 6 пикселей; ширина: 100 пикселей; цвет: #fff; текстовое оформление: нет; выравнивание текста: центр; } #navbar ul li {float: none; } #navbar li: hover {цвет фона: # f90; } #navbar ul li: hover {цвет фона: # 666; }Попытайся "
CSS Стиль главного меню - HTML и CSS - Форумы SitePoint
Я пытался избежать использования JavaScript на веб-сайте.Я слышал, что использование JavaScript может вызвать проблемы с некоторыми браузерами!
Да, может.
Думаю, вы продвигаете использование JavaScript!?!
О, черт возьми! 🙂 Хех, меня здесь вроде как называют нацистом, выступающим против JS, хотя на самом деле моя единственная проблема с этим - когда разработчики используют его как костыль для своих плохих навыков HTML / CSS 🙂
Я думал, что использование панели навигации на чистом CSS станет ответом на любые потенциальные проблемы с JavaScript! Вы не согласны с моими предыдущими рассуждениями?
Нет, навигационная панель с «чистым CSS» предпочтительнее (хотя имейте в виду, что в любом случае есть проблемы с удобством использования с выпадающими списками).
Как сказал Ральф, IE6 не может правильно использовать его… однако они не обязательно ЕДИНСТВЕННЫЕ люди, имеющие подобные проблемы с панелью навигации CSS! (что делают люди, использующие сенсорное устройство, если у них нет: hover ??)
Способ решения этой проблемы - сделать так, чтобы ваши пункты меню основного уровня были доступны для щелчка в том месте, где все ссылки подменю находятся где-то в простом виде. Поскольку большинство пользователей будут пользователями настольных компьютеров с включенными мышью, CSS и JS, они не заметят повторяющихся страниц. Пользователи без мышей, использующие сенсорные устройства или IE6 без Javascript все равно смогут получить доступ к ссылкам в подменю.
Сейчас я использую немного Javascript в своих выпадающих списках:
Иногда я добавляю небольшую задержку onmouseoff, чтобы пользователи дрожащими руками не заходили глубоко в меню, а затем теряли все это, потому что мышь вышла из подменю для нано -второй (хотя чем глубже меню, тем менее полезным оно становится и тем больше у вас проблем с удобством использования / доступности, потому что это деликатные вещи).
Я также добавляю некоторый Javascript, чтобы отображать подменю на экране для клавишников (с чистым CSS вы можете получить фактический элемент подменю на экране, но вы не можете одновременно отображать другие элементы меню на экране).
Если вы хотите увидеть эффекты Javascript в раскрывающемся меню, проверьте эту страницу с отключенным Javascript, а затем включите его (обязательно перейдите по меню с выключенным JS, а затем включенным JS, чтобы увидеть разницу ).
Однако IE более 100 лет в вебе, так что вы можете спокойно игнорировать его сейчас. (Утомляется и готовится к огнеметам.
ПЛАМЕНИ !!! 1
Поскольку я иду вперед и поддерживаю 0,000005% моих пользователей, которые могут быть слепыми и используют программу чтения с экрана, я чертовски уверен, что буду поддерживать тех, кто не может обновить свой IE или использовать другой браузер (а у меня почти 20% этих людей не без внимания).
Что касается JavaScript, то веб-сайт, который я модернизирую, в настоящее время использует систему корзины покупок на JavaScript, которая называется JShop. Некоторые из наших клиентов звонили нам, говоря, что «цены на вашем веб-сайте отображаются как« неопределенные »», и это связано с JavaScript. Поэтому они не могли совершать покупки в Интернете!
Да, Magento я считаю особенно виноватым. Все коммуникации с сервером должны осуществляться через формы с отправками и POST-сообщениями. Если вы хотите поупражняться в этом, вы используете технику, известную как «Hijax»: Javascript, если он включен, останавливает отправку формы и вместо этого заменяет ее некоторой версией Javascript.Пользователи с включенным JS получают возможность «все лучше в этом»… пользователи, не получившие рабочих форм. Я могу заказывать вещи на Amazon.com без Javascript.
Неужели JavaScript меньше проблем с панелями навигации? Я не хочу создавать панель навигации с надписью «undefined», потому что я использую JavaScript? Может ли это быть так?
Он не скажет undefined, он просто не выпадет, если для этого требуется JS.
Плохое меню имеет href = "#" в элементах верхнего уровня, поэтому без JS вы никуда не денетесь: (
.