css раскрывающееся вертикальное меню | Все о Windows 10
На чтение 5 мин. Просмотров 41 Опубликовано
Вертикальное плавно раскрывающееся меню аккордеон для сайта с подпунктами основного раздела на HTML5 + CSS3 + JS
Вертикальное раскрывающееся меню HTML + CSS + JS
Вертикальное раскрывающееся меню аккордеон один из способ сократить объем информации на странице, без потери содержания. Каждый из разделов содержит в свернутом виде подпункты основного. Преимущества таких меню заключается в том, что при клике на раздел меню, раскрываются подпункты основного раздела. При переходе на другой основной раздел, разворачиваются подпункты следующего.
Плавность раскрывающихся элементов подменю придадут красоту и стилизацию, поэтому будем использовать css свойство transition. Изначально все подпункты меню будут свернуты, кроме основного раздела.
Все подпункты меню свернуты Все подпункты меню развернуты Второй подпункт меню развернут. Нумерация идентификаторов начинается с 0 Два подпункта меню развернуты
Если вы попали на этот сайт случайно или искали другое выпадающее меню, советую перейти по ссылке, там собранно множество разных меню для сайта.
Вертикальных менюшек для сайтов довольно много, в этом уроке я покажу вам только вертикальное выпадающее меню на CSS при наведении с выпадашкой вправо и влево, а также многоуровневые выпадающие меню. Другие варианты вертикальных меню для сайта будут описаны в следующих уроках. И так преступим.
Навигация по странице:
В качестве вступления, думаю стоит рассказать принцип работы выпадашек на CSS.
У всех браузеров, которые запущенные с ПК или ноутбука, в CSS доступно свойство :hover (тут я малость неправ, это псевдокласс ) на базе которого можно построить практически любое вертикальное выпадающее меню.
А что же делать с мобильными браузерами? — или на планшетах спросите вы.
К счастью, разработчики мобильных браузеров предусмотрели (к сожалению не везде) возможность срабатывания псевдокласса :hover при первом нажатии на ссылку, если оно описано в CSS. Благодаря этим стараниям, большинство пользователей сможет увидеть ваше вертикальное выпадающее меню CSS.
Пара слов о преимуществе выпадающих меню:
- можно вместить очень длинные меню в ограниченное пространство;
- дизайн становится более изящным;
- частично улучшаются поведенческие факторы.
Вертикальное выпадающее меню вправо
к менюПредставляю вашему вниманию первый пример: простое вертикальное выпадающее меню вправо при наведении.
Написание менюшки мы начнем с html кода и сделаем его универсальным на списках, вариант ответа идентичный тому, что возвращает wordpress.
Html для вертикального меню
Думаю в плане понимания html у вас не возникнет никаких сложностей, типичные списки с тегами ul и li. Смотрим код:
Меню для сайта на списках: у некоторых пунктов есть выпадающие блоки, у некоторых нет. Все предельно просто, думаю никаких пояснений не нужно.
Вертикальное выпадающее меню CSS
к менюСо стилями CSS вопрос немного по сложнее. Я вам покажу код только самого меню, а остальные стили вы сможете посмотреть когда скачаете пример.
Вот эта строчка CSS
Посмотреть что у нас получилось в этом примере можно на скине:
Как работает вертикальное выпадающее меню css вы можете увидеть в режиме демо ниже, или скачав пример:
Вот такой не сложный пример выпадающего меню у меня получился.
Это еще не конец, идем дальше.
Предположим, что вам нужно сделать выпадающее меню при наведении с выпадашкой влево. На основе примера выпадашки вправо мы сейчас ее и реализуем.
Вертикальное выпадающее меню влево на CSS
к менюХтмл код оставляем прежним, его нет смысла менять. Разве что в самом примере, мне придется поменять местами левый блок и правый, для наглядности примера. (увидите скачав пример в конце)
Стили CSS будут немножко отличаться, хотя не кардинально. В моем простом примере достаточно исправить одно значение. В комментариях, я помечу его.
Для более сложных меню, вам потребуется сделать немножко больше правок. Смотрим стили:
Вот и все. У нас получилось вот такое меню. Слева кликабельный скин, справа демо и ссылка на скачивание примера:
Вертикальное меню делается на основе списка, маркированного или нумерованного. По умолчанию все элементы списка
. располагаются вертикально, занимая по ширине всю ширину элемента контейнера
, который в свою очередь занимает всю ширину его блока-контейнера.
Элементы списка
. могут содержать не только ссылки, но также заголовки, иконки, картинки. С помощью вертикального меню можно оформлять комментарии на сайте, список категорий и т.д.
1. Вертикальное меню с заголовком
Простой элегантный вариант оформления. Подходит для стилизации категорий на сайте. При наведении элемент списка меняет цвет ссылки.
2. Вертикальное меню в стиле «схема метро»
Интересное решение для оформления вертикального меню, предусмотрено добавление вложенных меню. «Ветка метро» — левая граница списка, маркеры генерируются перед каждой ссылкой.
3. Вертикальное меню с эффектами при наведении
Иконка и фоновая заливка, проявляющиеся при наведении на элемент списка, помогут разнообразить дизайн элементов вертикального меню.
4. Вертикальное меню с иконками
Иконки в меню создают визуальный якорь, дополняя словесное описание каждой категории. Для отображения иконок нужно подключить шрифт Awesome. Вы также можете использовать любой другой иконочный шрифт или иконки-картинки.
5. Вертикальное меню с картинками
Данный пример можно использовать для оформления блоков с новинками, похожими товарами, и т.п. сайте интернет-магазина.
Как сделать в css выпадающее меню? Пошаговая инструкция
От автора: всех приветствую. Почему-то выпадающее меню у веб-мастеров ассоциируется со скриптами, но уже давно сделать такую навигацию можно абсолютно спокойно на чистом css. Причем такое меню будет ничем не хуже. Сегодня я вам покажу, как создать в css выпадающее меню. Поделюсь, так сказать, рецептом.
План урока и разметка нашего меню
В общем-то, сначала определимся с тем, как будем создавать само меню. В html5 стандартным способом считается создавать его в контейнере nav с помощью маркированного списка. Давайте именно так и сделаем. Маркеры мы позже уберем с помощью css, в меню они нам совершенно не нужны.
Собственно, я сразу напишу в html разметку с вложенными списками. То есть наши список будет двухуровневым – в нем будут другие списки. А именно, на каждый пункт 1 список, который и будет формировать выпадающее меню.
Тут есть важный момент, который заключается в том, что вам, возможно, не нужно каждый пункт делать выпадающим, а лишь некоторые. Без проблем, тогда в пунктах без выпадения просто не создаем вложенных списков.
Собственно, вот она, вся разметка:
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Узнать подробнее<nav id = «nav»> <ul> <li><a href = «#»>Пункт 1</a> <ul class = «second»> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> </ul> </li> <li><a href = «#»>Пункт 2</a> <ul class = «second»> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> </ul> </li> <li><a href = «#»>Пункт 3</a> <ul class = «second»> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> </ul> </li> <li><a href = «#»>Пункт 4</a> <ul class = «second»> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> </ul> </li> </ul> </nav>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <nav id = «nav»> <ul> <li><a href = «#»>Пункт 1</a> <ul class = «second»> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> </ul> </li> <li><a href = «#»>Пункт 2</a> <ul class = «second»> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> </ul> </li> <li><a href = «#»>Пункт 3</a> <ul class = «second»> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> </ul> </li> <li><a href = «#»>Пункт 4</a> <ul class = «second»> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> </ul> </li> </ul> </nav> |
Я понимаю, что она огромна. В этом-то и проблема вложенных списков, что требуется писать много кода. Но учитывайте тот факт, что мы делаем 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%; } |
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Узнать подробнееВо-первых, скрываем полностью вложенные списки. Во-вторых, задаем им абсолютное позиционирование и координату 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, чтобы вложенное меню находилось на одном уровне с пунктом, которому соответствуют.
Все, теперь все работает так, как надо. Можете протестировать. Как видите, я не врал, когда говорил, что придется переписать всего несколько строк кода.
Горизонтальное меню с несколькими уровнями
Используя примерно такой же подход вы можете создать больше уровней меню, если это сильно необходимо. Например, давайте создадим для четвертого пункта главного меню список, который будет вложен в один из подпунктов.
<li><a href = «#»>Пункт 4</a> <ul class = «second»> <li><a href = «#»>Подпункт</a> <ul class = «third»> <li><a href = «#»>Подпункт подпункта</a></li> <li><a href = «#»>Подпункт подпункта</a></li> </ul> </li> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> </ul> </li>
<li><a href = «#»>Пункт 4</a> <ul class = «second»> <li><a href = «#»>Подпункт</a> <ul class = «third»> <li><a href = «#»>Подпункт подпункта</a></li> <li><a href = «#»>Подпункт подпункта</a></li> </ul> </li> <li><a href = «#»>Подпункт</a></li> <li><a href = «#»>Подпункт</a></li> </ul> </li> |
Опять же, разметка превращается в громоздкую и непонятную, но если вы будете внимательным, то увидите, в чем здесь вся суть. Далее работаем с css:
#nav li li .third{ display: none; position: absolute; left: 100%; top: 0; } #nav li li:hover .third{ display: block; }
#nav li li .third{ display: none; position: absolute; left: 100%; top: 0; } #nav li li:hover .third{ display: block; } |
Соответственно, убираем вложенное меню третьего уровня с экрана, делаем ему абсолютное позиционирование и прописываем такие координаты, как в случае с вертикальным меню. То есть данный список будет отображаться при наведении на первый подпункт четвертого пункта и будет отображаться сбоку.
Внимание! Чтобы абсолютное позиционирование работало для списка third, у списков second должно быть задано относительное позиционирование. Но как, если мы же задавали для него абсолютное позиционирование?
Что ж, если вам нужно меню трех уровней, то придется убирать у second абсолютное позиционирование, а у главных пунктов убирать относительное. Вся фишка в том, что в случае с горизонтальным меню это никак не повлияет на отображение навигации – подпункты по-прежнему будут располагаться под главным пунктом при наведении на него.
Зато после этих изменений вы сможете добавить меню для каждого подпункта. Опять же, необязательно оно должно отображаться сбоку, это всего лишь моя идея, вы можете отображать его под подпунктом при наведении на него. Тогда вообще никакого позиционирования не понадобится!
В общем, итог таков:
При наведении на пункт 4 появляется первое выпадающее меню, при наведении на первый подпункт появляется отдельное меню для него, которое расположено сбоку. У других подпунктов такое меню не отображается, так как мы не создавали его в html-разметке.
Я думаю, вам понятно общая концепция. Если вы смогли разобраться, то уже самостоятельно сможете создать нужное вам выпадающее меню и самостоятельно решить проблемы, если это возможно в рамках css.
Итог
В общем, вам главное понять, как правильно позиционировать вложенное меню, а также как непосредственно реализовывается выпадение. Надеюсь, из этой статьи вы это поняли и теперь самостоятельно на чистом css сможете делать такую навигацию. Мы с вами узнали, как сделать выпадающее меню.
Много других очень интересных возможностей css вы можете узнать в нашем премиум-курсе по новым фишкам css3. Там вы научитесь делать градиенты, работать с новыми селекторами, создавать тени и т.д. Если вам нравится css, то точно понравится эта серия уроков. Ну а я на этом прощаюсь с вами.
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Узнать подробнееPSD to HTML
Верстка сайта на HTML5 и CSS3 с нуля
СмотретьCSS меню. Выпадающее меню. Горизонтальное CSS меню. Вертикальное CSS меню.
Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah.ru. Я решил создать новую рубрику Создание и оформление сайтов, в этой рубрике будет много вкусного и интересного. Поскольку, здесь я буду писать о реальных примерах. Тема сегодняшней публикации — создание CSS меню, которая находится в разделе CSS меню.
Любое CSS меню должно отвечать нескольким требованиям: CSS меню должно быть удобным, компактным, доступным для пользователя. Чтобы меню сайта было компактным и удобным его следует делать выпадающим. Конечно, выпадающее CSS меню не будет корректно работать в старых браузерах таких как IE6. Выпадающее меню удобно тем, что не занимает много места на веб-странице. В данном примере не будет использоваться JavaScript и библиотека JQuery — а это означает, что выпадающее меню будет доступно для пользователей, у которых в настройках браузера отключены скрипты.
И так, сегодня мы создадим горизонтальную навигацию по сайту и вертикальную навигацию, при этом мы будем использовать только HTML и CSS.
Создание CSS меню. Создание выпадающего меню. Шаг 1 — создаем вертикальное HTML меню.
Содержание статьи:
Для начала мы создаем маркированный HTML список при помощи тега <ul> и тега <li>:
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»> <html> <head> <meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″> <title>Создание CSS меню</title> </head> <body> <span><span><> </span></span><ul> <li>Первый пункт</li> <li>Второй пункт <ul> <li>Первый подпункт</li> <li>Второй подпункт</li> </ul> </li> <li>Третий пункт <ul> <li>Первый подпункт</li> <li>Второй подпункт</li> <li>Третий подпункт</li> </ul> </li> <li>Четвертый пункт</li> </ul> </body> </html>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»> <html> <head> <meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″> <title>Создание CSS меню</title> </head> <body> <span><span><> </span></span><ul> <li>Первый пункт</li> <li>Второй пункт <ul> <li>Первый подпункт</li> <li>Второй подпункт</li> </ul> </li> <li>Третий пункт <ul> <li>Первый подпункт</li> <li>Второй подпункт</li> <li>Третий подпункт</li> </ul> </li> <li>Четвертый пункт</li> </ul> </body>
</html> |
Примерно должно получиться что-то типа такого списка:
- Первый пункт
- Второй пункт
- Первый подпункт
- Второй подпункт
- Третий пункт
- Первый подпункт
- Второй подпункт
- Третий подпункт
- Четвертый пункт
Конечно, это еще не меню и даже не навигация, поскольку ни один из пунктов HTML списка не является ссылкой. Теперь нужно сделать каждый пункт нашего HTML списка ссылкой. Таким образом, у нас получится вертикальное HTML меню, таблицу стилей (css) мы еще пока не будем трогать и подключать. Чтобы пункты HTML списка стали ссылками, содержимое каждого элемента <li> внутрь тега <a>:
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»> <html> <head> <meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″> <title>Создание CSS меню</title> </head> <body> div> <ul> <li><a href=»#»>Первый пункт</a></li> <li><a href=»#»>Второй пункт</a> <ul> <li><a href=»#»>Первый </a></li> <li><a href=»#»>Второй </a></li> <li><a href=»#»>Третий </a></li> </ul> </li> <li><a href=»#»>Третий пункт</a> <ul> <li><a href=»#»>Первый подпункт</a></li> <li><a href=»#»>Второй подпункт</a></li> </ul> </li> <li><a href=»#»>Четвертый пункт</a></li> </ul> <div> </body> </html>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»> <html> <head> <meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″> <title>Создание CSS меню</title> </head> <body> div> <ul> <li><a href=»#»>Первый пункт</a></li> <li><a href=»#»>Второй пункт</a> <ul> <li><a href=»#»>Первый </a></li> <li><a href=»#»>Второй </a></li> <li><a href=»#»>Третий </a></li> </ul> </li> <li><a href=»#»>Третий пункт</a> <ul> <li><a href=»#»>Первый подпункт</a></li> <li><a href=»#»>Второй подпункт</a></li> </ul> </li> <li><a href=»#»>Четвертый пункт</a></li> </ul> <div> </body>
</html> |
Теперь мы получили вертикальное HTML меню. У тега <a> есть атрибут href, в котором следует указывать адрес страницы, на который будет вести ссылка, у меня нет необходимости этого делать, поэтому в качестве адреса я указал символ # или забой. Ссылки, у которых в качестве значения атрибута href указан #, никуда не ведут. Обратите внимание: вертикальной HTML меню я поместил в контейнер <div>, поскольку в спецификации HTML 4 есть правило: внутри элемента <body> могут находиться только блочные элементы и элементы <ins> и <del>. У тега <div> есть один атрибут id со значением «block». У корневого тега <ul> есть атрибут id со значением «hnav», этот атрибут потребуется нам для создания вертикального и горизонтального CSS меню.
Создание CSS меню. Выпадающее меню. Шаг 2 — создаем горизонтальное CSS меню.
Далее мы будем задавать стили CSS для нашего будущего меню. Для начала, давайте зададим стиль для контейнера <ul> со значением hnav атрибута id, то есть общий стиль для нашего выпадающего меню:
#hnav { list-style: none; margin: 0; padding: 0; font-size: 1.2em; float: right; position: relative }
#hnav { list-style: none; margin: 0; padding: 0; font-size: 1.2em; float: right; position: relative
} |
Давайте коротко пройдемся по CSS свойствам и посмотри для чего они нужны. Первое CSS свойство, которое было задано list-style со значением none, данное свойство позволяет избавиться от мерзких маркеров HTML списка, но только для родительских пунктов вертикального меню, у дочерних HTML элементов маркеры останутся.
Свойство margin делает нулевым отступ от края элемента ul. Свойство paddin убирает внутренние отступы HTML элемента ul. Свойство font-size задает размер текста пунктов нашего CSS меню. Свойство float позволяет выравнять CSS меню, в нашем случае по правому краю. Свойство position со значение relative позиционирует контейнер ul относительно его исходного места.
После того, как мы задали общий стиль для нашего горизонтального меню, можно задать стили для всех родительских пунктов навигации:
#hnav li { float: left; position: relative; }
#hnav li {
float: left;
position: relative;
} |
Для каждого элемента li, которые находятся внутри контейнера ul мы задаем два свойства: float со значением left (тем самым мы добиваемся того, что наше CSS меню стало горизонтальным) и опять же, задаем свойство position со значением relative, чтобы элементы заняли свое место.
Теперь мы можем задать стили, для содержимого контейнеров li, то есть стили для пунктов горизонтального CSS меню:
#hnav li a{ float: left; display: block; padding: 4px; text-decoration: none; color: #666; text-transform: uppercase; margin-right: 10px; }
#hnav li a{ float: left; display: block; padding: 4px; text-decoration: none; color: #666; text-transform: uppercase; margin-right: 10px; } |
Свойство display имеет значение block, это говорит нам о том, что пункты нашего CSS меню будут вести себя как блочные (в данном случае контейнеры <a>, тег <a> сам по себе строчный элемент). Свойство padding устанавливает внутренние отступы между пунктами меню, чтобы те не накладывались друг на друга. Значение none свойства text-decoration позволяет убрать подчеркивание у ссылок(меню же из ссылок состоит). Свойство color задает цвет текста внутри контейнера <a>. Свойство text-transform: uppercase; задает начертание текста нашего CSS меню, а именно, весь текст будет написан прописными буквами.
Теперь можно задать то, как будут выглядеть пункты меню при наведение на них курсора мышки:
#hnav li:hover a, #hnav li a:hover { background: #999; color: #fff; }
#hnav li:hover a, #hnav li a:hover { background: #999; color: #fff; } |
Свойство color изменяет цвет текста пункта меню при наведение на него курсора мыши. Свойство background задает цвет фона пункта CSS меню при наведение курсора на пункт.
Теперь мы можем «спрятать» вложенные пункты меню:
#hnav ul {display: none;}
#hnav ul {display: none;} |
После того, как мы «спрятали» пункты выпадающего меню, нужно сделать так, чтобы эти пункты выпадали при наведение курсора:
#hnav li:hover ul {display: block;} #hnav ul { float: none; position: absolute; list-style: none; margin: 0; padding: 0; top: 1.8em; left: 0; } #hnav ul li { float: none; clear: none; margin: 0; padding: 0; width: auto; color: #999; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#hnav li:hover ul {display: block;}
#hnav ul { float: none; position: absolute; list-style: none; margin: 0; padding: 0; top: 1.8em; left: 0; }
#hnav ul li { float: none; clear: none; margin: 0; padding: 0; width: auto; color: #999; } |
В данном случае мы добились того, что вложенные пункты меню выпадают и немного оформили наше меню, сделали его более читабельным.
После того, как мы задали стили для основных пунктов горизонтального меню, можно задать стили и для вложенных пунктов меню, задать то, как будут выглядеть вложенные пункты меню, как они будут изменяться при наведение на них курсора мыши и то, как будут выглядеть посещенные пункты:
#hnav li:hover ul li a, #hnav ul li a { line-height: 200%; display: block; padding: 0 6px 0 0; float: none; text-transform: lowercase; color: #999; background: none; } #hnav li:hover ul li a:hover, #hnav ul li a:hover { background: none; color: #000; } <span>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#hnav li:hover ul li a, #hnav ul li a { line-height: 200%; display: block; padding: 0 6px 0 0; float: none; text-transform: lowercase; color: #999; background: none; }
#hnav li:hover ul li a:hover, #hnav ul li a:hover { background: none; color: #000; }
<span> |
Как видите, мы создали горизонтальное выпадающее CSS меню, при этом, не используя JavaScript. Можно перейти к созданию вертикального CSS меню.
Так будет выглядеть горизонтальное выпадающее CSS меню:
Горизонтальное CSS меню. Выпадающее CSS меню.
Создание CSS меню. Выпадающее меню. Шаг 3 — создаем вертикальное CSS меню.
Приступим к созданию вертикального CSS меню. Для начала создаем маркированный HTML список, точно такой же, как и для горизонтального меню:
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»> <html> <head> <meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″> <title>Создание CSS меню</title> </head> <body> div> <ul> <li><a href=»#»>Первый пункт</a></li> <li><a href=»#»>Второй пункт</a> <ul> <li><a href=»#»>Первый </a></li> <li><a href=»#»>Второй </a></li> <li><a href=»#»>Третий </a></li> </ul> </li> <li><a href=»#»>Третий пункт</a> <ul> <li><a href=»#»>Первый подпункт</a></li> <li><a href=»#»>Второй подпункт</a></li> </ul> </li> <li><a href=»#»>Четвертый пункт</a></li> </ul> <div> </body> </html> <span>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN» «http://www.w3.org/TR/html4/loose.dtd»> <html> <head> <meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″> <title>Создание CSS меню</title> </head> <body> div> <ul> <li><a href=»#»>Первый пункт</a></li> <li><a href=»#»>Второй пункт</a> <ul> <li><a href=»#»>Первый </a></li> <li><a href=»#»>Второй </a></li> <li><a href=»#»>Третий </a></li> </ul> </li> <li><a href=»#»>Третий пункт</a> <ul> <li><a href=»#»>Первый подпункт</a></li> <li><a href=»#»>Второй подпункт</a></li> </ul> </li> <li><a href=»#»>Четвертый пункт</a></li> </ul> <div> </body>
</html>
<span> |
Разница только в имени идентификатора для корневого элемента списка <ul>, поскольку для вертикального и горизонтального меню у меня находятся в одном файле.
Теперь можно задать общие стили для отображения CSS меню:
#vnav { width: 400px; float: left; list-style: none; margin: 0; padding: 0; font-size: 1.2em; }
#vnav { width: 400px; float: left; list-style: none; margin: 0; padding: 0; font-size: 1.2em; } |
Единственным отличием от горизонтального меню является то, что мы задаем ширину нашего меню, которая равна 400 пикселов, при помощи свойства width.
Далее задаем стили для всех пунктов HTML списка:
#vnav li { clear: both; height: 2em; }
#vnav li { clear: both; height: 2em; } |
Свойство height задает высоту элементов CSS меню, clear запрещает обтекание вокруг HTML элемента, значение both говорит о том, что ни с левой, ни с правой стороны наше вертикальное меню не будет обтекания.
Теперь мы задаем то, как будут выглядеть родительские пункты вертикального меню, конечно этот стиль будет применен и для подпунктов, но в дальнейшем для них мы зададим свой стиль отображения:
#vnav li a { float: left; display: block; padding: 4px; text-decoration: none; color: #666; text-transform: uppercase; margin-bottom: 5px; margin-right: 10px; }
#vnav li a { float: left; display: block; padding: 4px; text-decoration: none; color: #666; text-transform: uppercase; margin-bottom: 5px; margin-right: 10px; } |
В принципе, стиль отображения пунктов вертикального CSS меню не отличается от стиля для горизонтального меню.
Теперь мы задаем то, как будут отображаться родительские элементы вертикального CSS меню при наведение на них курсора мыши:
#vnav li:hover a, #vnav li a:hover { background: #999; color: #fff; }
#vnav li:hover a, #vnav li a:hover { background: #999; color: #fff; } |
Теперь мы должны сделать подпункты вертикального CSS меню невидимыми:
#vnav ul {display: none;}
#vnav ul {display: none;} |
После чего следует задать CSS правила, по которым подпункты меню будут выпадать при наведение курсора на родительский элемент:
#vnav li:hover ul {display: block;}
#vnav li:hover ul {display: block;} |
Теперь нужно сделать так, чтобы список подпунктов нашего CSS меню отображался справа от своих родительских элементов, сразу же избавляемся от мерзких маркеров HTML списка:
#hnav ul { list-style: none; float: left; margin: 0; padding: 4px 8px; }
#hnav ul { list-style: none; float: left; margin: 0; padding: 4px 8px; } |
Но мы еще не достигли того, чтобы список подпунктов меню отображался горизонтально, давайте зададим соответствующие CSS правила:
#hnav ul li { float: left; clear: none; margin: 0; padding: 0; width: auto; height: auto; color: #999; }
#hnav ul li { float: left; clear: none; margin: 0; padding: 0; width: auto; height: auto; color: #999; } |
Свойство float: left делает отображение подпунктов меню в линию.
А теперь немного изменим стили для подпунктов, зададим CSS правила для отображения подпунктов меню, то, как они будут отображаться при наведение на них курсора мышки:
#hnav li:hover ul li a, #hnav ul li a { display: inline; padding: 0 6px 0 0; float: none; text-transform: lowercase; color: #999; background: none; } #hnav li:hover ul li a:hover, #hnav ul li a:hover { background: none; color: #000; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#hnav li:hover ul li a, #hnav ul li a { display: inline; padding: 0 6px 0 0; float: none; text-transform: lowercase; color: #999; background: none; }
#hnav li:hover ul li a:hover, #hnav ul li a:hover { background: none; color: #000; } |
Вот так будет выглядеть вертикальное выпадающее CSS меню, которое мы только что создали:
Вертикальное CSS меню. Выпадающее CSS меню.
Исходные коды примеров вы можете скачать на публичных страницах вконтакте: раз и два.
На этом всё, спасибо за внимание, надеюсь, что был хоть чем-то полезен и до скорых встреч на страницах блога для начинающих вебразработчиков и вебмастеров ZametkiNaPolyah.ru. Не забываем комментировать и делиться с друзьями;)
Вертикальное выпадающее меню на CSS
Вертикальное выпадающее меню на CSS
29 января 2020 | Автор: seogrot | Категория: Уроки вёрсткиСегодня я приведу пример создания вертикального выпадающего меню оформленного с помощью CSS. Постараюсь задействовать как можно больше свойств css, чтобы наглядно показать, как можно оформить созданное меню. Меню будет полностью оформлено с использованием Каскадных таблиц стилей. Единственно, что пришлось сделать с помощью JavaScript, это эффект выпадающего меню для Internet Explorer, т.к одно из нужных свойств он всё таки не поддерживает.
Для начала нужно построить структуру нашего меню. Она будет состоять из ненумерованного базового списка включающего в себя списки-подменю.
index.html
<title>Вертикальное выпадающее меню на CSS</title> <script type="text/javascript" src="cssmenu.js"></script> <link rel="stylesheet" type="text/css" href="style.css"> <ul> <li><a href="#">Главная страница</a></li> <li><a href="#">Создание сайтов</a> <ul> <li><a href="#">Дизайн сайтов</a></li> <li><a href="#">Вёрстка сайтов</a></li> <li><a href="#">Оптимизация сайтов</a></li> </ul> </li> <li><a href="#">Продвижение сайтов</a> <ul> <li><a href="#">SEO продвижение</a></li> <li><a href="#">SMO продвижение</a></li> </ul> </li> <li><a href="#">SEO биржи</a></li> <li><a href="#">SEO софт</a></li> </ul> |
<title>Вертикальное выпадающее меню на CSS</title> <script type=»text/javascript» src=»cssmenu.js»></script> <link rel=»stylesheet» type=»text/css» href=»style.css»> <ul> <li><a href=»#»>Главная страница</a></li> <li><a href=»#»>Создание сайтов</a> <ul> <li><a href=»#»>Дизайн сайтов</a></li> <li><a href=»#»>Вёрстка сайтов</a></li> <li><a href=»#»>Оптимизация сайтов</a></li> </ul> </li> <li><a href=»#»>Продвижение сайтов</a> <ul> <li><a href=»#»>SEO продвижение</a></li> <li><a href=»#»>SMO продвижение</a></li> </ul> </li> <li><a href=»#»>SEO биржи</a></li> <li><a href=»#»>SEO софт</a></li> </ul>
style.css
<div> /* Убираем отступы и маркеры в ненумерованном списке, задаём ширину и стили оформления */ ul { padding: 0; margin: 0; list-style: none; width: 140px; list-style: none; border-bottom: 1px solid #C1D8E6; font-size: 11px; font-family: Geneva, Arial, Helvetica, sans-serif; } /* Задаём относительное позиционирование выпадающего списка */ ul li { position: relative; } /* Задаём абсолютное позиционирование выпадающего списка, сдвиг влево на 139 px, чтобы выпадающее меню перекрывало главное и не создавалась двойная граница, по умолчанию выпадающий список будет скрыт */ li ul { position: absolute; left: 139px; top: 0; display: none; } /* Задаём стили для ссылок */ ul li a { display: block; text-decoration: none; color: #003399; background: #EAF4FF; background-image: url('images/bullet-arrow.gif') ; background-repeat: no-repeat; background-position: 1px 9px; padding: 5 5 5 10; border: 1px solid #ccc; border-bottom: 0; } /* Указываем браузеру, что подменю будет появляться, когда курсор находится над элементом списка. */ li:hover ul, li.over ul{ display: block; } /* Задаём стили для выпадающего меню */ ul li a:hover { background: #77CF7F; background-image: url('images/bullet-arrow.gif') ; background-repeat: no-repeat; background-position: 1px 9px; text-decoration: none; } /* ХАК для ie, чтобы и там всё корректно отображалось:)*/ /* Fix IE. Hide from IE Mac \*/ * html ul li { float: left; height: 1%; } * html ul li a { height: 1%; } /* End */</div> |
<div> /* Убираем отступы и маркеры в ненумерованном списке, задаём ширину и стили оформления */ ul { padding: 0; margin: 0; list-style: none; width: 140px; list-style: none; border-bottom: 1px solid #C1D8E6; font-size: 11px; font-family: Geneva, Arial, Helvetica, sans-serif; } /* Задаём относительное позиционирование выпадающего списка */ ul li { position: relative; } /* Задаём абсолютное позиционирование выпадающего списка, сдвиг влево на 139 px, чтобы выпадающее меню перекрывало главное и не создавалась двойная граница, по умолчанию выпадающий список будет скрыт */ li ul { position: absolute; left: 139px; top: 0; display: none; } /* Задаём стили для ссылок */ ul li a { display: block; text-decoration: none; color: #003399; background: #EAF4FF; background-image: url(‘images/bullet-arrow.gif’) ; background-repeat: no-repeat; background-position: 1px 9px; padding: 5 5 5 10; border: 1px solid #ccc; border-bottom: 0; } /* Указываем браузеру, что подменю будет появляться, когда курсор находится над элементом списка. */ li:hover ul, li.over ul{ display: block; } /* Задаём стили для выпадающего меню */ ul li a:hover { background: #77CF7F; background-image: url(‘images/bullet-arrow.gif’) ; background-repeat: no-repeat; background-position: 1px 9px; text-decoration: none; } /* ХАК для ie, чтобы и там всё корректно отображалось:)*/ /* Fix IE. Hide from IE Mac \*/ * html ul li { float: left; height: 1%; } * html ul li a { height: 1%; } /* End */</div>
JavaScript нужен, чтобы заставить выпадающее меню работать в Internet Explorer. В остальных браузерах должно работать без него.
Вот так работает наше меню — Вертикальное выпадающее меню на CSS
Скачать Example1.zip
Многоуровневое вертикальное меню HTML и CSS
18 ноября, 2015 10 982 1На днях быстро нужно было сделать простое многоуровневое меню при помощи только css и html. Потратил на поиски минут 15, чего то подходящего что б не переделывать так и не нашел. По этому решил быстрее написать новое чем чистить чужой код. Вот что получилось
CSS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | ul{ list-style: none; background-color: #484f61; width: 200px; border: 1px solid #2a323f; border-bottom: none; color: #fff; } ul li{ border-bottom: 1px solid #2a323f; position: relative; } ul li:hover{ background-color: #2a323f; } ul li:hover ul{ display: block; } ul li:hover ul li ul{ display: none; } ul li a{ color: #fff; padding: 10px 20px; display: block; text-decoration: none; font-weight: bold; } ul li a:hover{ background-color: #5d99cf; color: #fff; } ul li ul li:hover ul{ display: block; } ul li ul{ position: absolute; left: 200px; top: 0px; display: none; } |
ul{ list-style: none; background-color: #484f61; width: 200px; border: 1px solid #2a323f; border-bottom: none; color: #fff; } ul li{ border-bottom: 1px solid #2a323f; position: relative; } ul li:hover{ background-color: #2a323f; } ul li:hover ul{ display: block; } ul li:hover ul li ul{ display: none; } ul li a{ color: #fff; padding: 10px 20px; display: block; text-decoration: none; font-weight: bold; } ul li a:hover{ background-color: #5d99cf; color: #fff; } ul li ul li:hover ul{ display: block; } ul li ul{ position: absolute; left: 200px; top: 0px; display: none; }
HTML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <ul> <li><a href="#">Главная</a></li> <li><a href="#">Новости</a></li> <li><a href="#">Прайс</a></li> <li><a href="#">Услуги</a> <ul> <li><a href="#">Услуга 1</a></li> <li><a href="#">Услуга 2</a></li> <li><a href="#">Услуга 3</a> <ul> <li><a href="#">Услуга 1</a></li> <li><a href="#">Услуга 2</a></li> <li><a href="#">Услуга 3</a></li> <li><a href="#">Услуга 4</a></li> <li><a href="#">Услуга 5</a></li> </ul> </li> <li><a href="#">Услуга 4</a></li> <li><a href="#">Услуга 5</a></li> </ul> </li> <li><a href="#">Контакты</a></li> </ul> |
<ul> <li><a href=»#»>Главная</a></li> <li><a href=»#»>Новости</a></li> <li><a href=»#»>Прайс</a></li> <li><a href=»#»>Услуги</a> <ul> <li><a href=»#»>Услуга 1</a></li> <li><a href=»#»>Услуга 2</a></li> <li><a href=»#»>Услуга 3</a> <ul> <li><a href=»#»>Услуга 1</a></li> <li><a href=»#»>Услуга 2</a></li> <li><a href=»#»>Услуга 3</a></li> <li><a href=»#»>Услуга 4</a></li> <li><a href=»#»>Услуга 5</a></li> </ul> </li> <li><a href=»#»>Услуга 4</a></li> <li><a href=»#»>Услуга 5</a></li> </ul> </li> <li><a href=»#»>Контакты</a></li> </ul>
Вам также может понравиться
Как сделать красивое выпадающее меню
Если Вы занимаетесь веб-дизайном либо у Вас есть собственный сайт (блог), то Вы знакомы с тем, как создается меню и пункты в нем. Если мы рассматриваем какую-либо систему управления сайтом (CMS), то там вручную создавать пункты меню не надо – всё делается на автомате. Это с одной стороны хорошо, а с другой стороны плохо…
Автоматическое создание меню хорошо тогда, когда пользователь вообще не имеет представления о том, что такое HTML, PHP, CSS, JavaScript. В CMS достаточно ввести названия страниц, рубрик и т.п. и меню будет сформировано. А вот плох такой режим его создания тем, что если Вам необходимо внести какие-то правки в структуру меню, то тут без специалиста уже не обойтись. Более того, даже специалисты зачастую вынуждены коренным образом переписывать код вывода меню CMS, чтобы удовлетворить желания заказчика (кстати исполнителей рекомендую искать здесь).
Скажу больше: если мы возьмем самую популярную на сегодняшний день CMS – WordPress, то названия рубрик в сайдбаре сортируются автоматически по алфавиту. Изменить порядок их вывода без специального плагина силами самой CMS нельзя…
Если Вы хорошо знаете HTML, JavaScript, то создать меню любого вида для Вас не представляет никакой сложности. А вот если эти языки программирования Вы знаете лишь поверхностно или вовсе о них слышите впервые, то задача окажется для Вас скорее всего неподъемной, особенно если дело касается выпадающего меню.
Pure CSS Menu – онлайн генератор меню для сайта. С его помощью Вы сможете сделать выпадающее вертикальное либо горизонтальное меню с необходимым количеством подпунктов.
Пример горизонтального выпадающего меню
Выпадающее меню в данном редакторе создается на чистом HTML и CSS без использования JavaScript. Это несомненный плюс, т.к. зачастую в браузерах отключен JavaScript, и тогда Ваше меню у посетителей не будет работать так как следует.
Кому может быть полезен сервис
- веб-мастерам, хорошо знающим языки программирования, т.к. позволит им значительно сократить время на рутинной операции написания кода меню;
- владельцам собственных сайтов или блогов, которые хотят создать меню, но не знают, как это делается.
Как создать меню
Создание меню при помощи сервиса Pure CSS Menu происходит в визуальном редакторе. Для начала на вкладке «Templates» выберите необходимый шаблон меню из восьми доступных. Не обращайте пока внимания на количество пунктов и подпунктов меню, размер шрифта, цвет и пр. – всё это можно настроить, перейдя в закладку «Parameters».
Выбор шаблона меню
Настройка параметров меню
Пункты и подпункты меню, их названия, порядок следования, ссылки и пр. определяются в настройках редактора, которые можно найти, перейдя по закладке «Items». Т.к. многие не знают английского, объясню значение кнопок этого окна.
Настройка пунктов меню
1 – добавить пункт меню в конец всего списка
2 — добавить пункт меню сразу за активным (выделеным) в редакторе пунктом
3 – добавить подпункт в активный (выделеный) пункт меню
4 – удалить пункт (подпункт) меню
5 – удалить все пункты меню с подпунктам
Не забудьте указать ссылки для каждого пункта меню, подсказки при наведении и способ открытия ссылок в соответствующих полях под областью предпросмотра меню!
Свойства пунктов меню
После того, как Вы окончательно настроите внешний вид и функциональность Вашего выпадающего меню, нажимайте кнопку «Download» и сохраняйте на своем компьютере архив со всем необходимыми файлами (для этого необходимо зарегистрироваться).
Внутри архива Вы найдете папку «images» с графическими файлами, которые используются в меню, а также файл «purecssmenu.html» со сгенерированным кодом. Загружайте папку с картинками в директорию Вашего сайта, вставляйте код меню в нужное место и наслаждайтесь отличным выпадающим меню, написанном на простом HTML + CSS.
Видеоурок по созданию выпадающего меню:
Друзья, понравился ли Вам данный сервис? Знаете ли Вы более качественные аналоги? Делитесь своими впечатлениями в комментариях.
Автор статьи: Сергей Сандаков, 40 лет.
Программист, веб-мастер, опытный пользователь ПК и Интернет.
Плавно открывающееся меню с помощью CSS. Вертикальное выпадающее меню на css: как его сделать
От автора: всех приветствую. Почему-то выпадающее меню у веб-мастеров ассоциируется со скриптами, но уже давно сделать такую навигацию можно абсолютно спокойно на чистом 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, чтобы вложенное меню находилось на одном уровне с пунктом, которому соответствуют.
Все, теперь все работает так, как надо. Можете протестировать. Как видите, я не врал, когда говорил, что придется переписать всего несколько строк кода.
Горизонтальное меню с несколькими уровнями
Используя примерно такой же подход вы можете создать больше уровней меню, если это сильно необходимо. Например, давайте создадим для четвертого пункта главного меню список, который будет вложен в один из подпунктов.
Михаил сб, 09/20/2014 — 12:28
Что-то мой комментарий не виден — дублирую:
===========
Спасибо, но у меня (под Инт.Экспл-8) меню не выпадает. Т.е. не работает строка «ul.nav li:hover ul {display: block;}»
Подскажите, в чем дело?
Есть пожедания по изложению материала:
Хорошо бы в этой строке (ul.aaaaa li:hover ul {display: block;}) растолковать, какая ее часть отвечает за «выпадение меню», а какая — за скрывание пунктов более глубокого уровня вложенности
Хорошо бы в примерах каждую строку снабжать комментарием, что она делает.
В частности, неясно, зачем нужна строка «
Вертикальное раскрывающееся меню при наведении курсора с использованием CSS и HTML
Введение
В этой статье объясняется, как создать вертикальное раскрывающееся меню с помощью CSS и HTML.
Вы часто видите сайты, содержащие строку меню, которая опускается при наведении курсора и выглядит действительно здорово, но обычно это горизонтальные выпадающие меню. Эта статья поможет вам создать вертикальное выпадающее меню.
Его вывод будет примерно таким:
Теперь мы увидим процедуру создания такого выпадающего меню.
Шаг 1
Прежде всего, добавьте таблицу стилей и форму или страницу HTML.
Затем на HTML-странице или в веб-форме .NET добавьте «Div» и назовите его «divMenu».
После создания Div нам нужно добавить список элементов и еще один список в эти элементы, поэтому его окончательный код будет примерно таким:
- Home1
- Homea
- < a href = "#"> Homeb
- Homec
- Home2
- Homed
- Homee
- Homef
- Home3
- Homeg
- < href = "#"> Homeh
- Homei
- Home4
- Home5
- Homej
- Homek
- Homel < / a>
- Home6
- div >
Step 2
Прямо сейчас ваш код не более чем этот:
Итак, чтобы он выглядел хорошо и интересно, мы внесем изменения в таблицу стилей, которую мы добавили ранее.
Добавьте этот код в таблицу стилей:
- #divMenu, ul, li, li li {
- margin: 0;
- отступ: 0;
- }
- #divMenu {
- width: 150px;
- высота: 27 пикселей;
- }
- #divMenu ul
- {
- line-height: 25px;
- }
- #divMenu li {
- стиль списка: нет;
- позиция: относительная;
- фон: # 641b1b;
- }
- #divMenu li li {
- стиль списка: нет;
- позиция: относительная;
- фон: # 641b1b;
- слева: 148 пикселей;
- верх: -27 пикселей;
- }
- #divMenu ul li a {
- width: 148px;
- высота: 25 пикселей;
- дисплей: блок;
- текстовое оформление: нет;
- выравнивание текста: по центру;
- семейство шрифтов: Georgia, Times New Roman, с засечками;
- цвет: #ffffff;
- граница: сплошная 1px #eee;
- }
- #divMenu ul ul {
- положение: абсолютное;
- видимость: скрыта;
- верх: 27 пикселей;
- }
- #divMenu ul li: hover ul {
- видимость: видимая;
- }
- #divMenu li: hover {
- background-color: # 945c7d;
- }
- #divMenu ul li: hover ul li a: hover {
- background-color: # 945c7d;
- }
- #divMenu a: hover {
- font-weight: bold;
- }
Здесь я использовал идентификатор
, другими словами «divMenu».Теперь все изменится, и ваш результат будет совершенно другим и интересным.
Выход
Вертикальное раскрывающееся меню подменю с Css / html
nav ul { стиль списка: нет; маржа: 0; отступ: 0 пикселей; ширина: 200 пикселей; высота: авто; } навигация ul { маржа сверху: 4 пикселя; } nav ul li { border-top: 2px solid # 000000; цвет фона: белый; ширина: 10em; черный цвет; ширина: 200 пикселей; высота: авто; отступ: 5px 0px; размер шрифта: 120%; } nav ul li: hover { цвет фона: # E88B2E; } навигацияя не знаю { цвет: желтый; } ссылка { цвет: зеленый; } а: посетил { цвет: зеленый; } a: hover { цвет: светло-зеленый; } ul li ul { стиль списка: нет; маржа: 0; отступ: 0 пикселей; ширина: 200 пикселей; высота: авто; дисплей: нет; } ul li ul li { border-top: 2px solid # 000000; цвет фона: белый; ширина: 10em; черный цвет; ширина: 200 пикселей; высота: авто; отступ: 5px 0px; размер шрифта: 120%; } ссылка { текстовое оформление: нет; } nav ul li: hover ul { / * При наведении указателя мыши на элемент списка отображаем UL, вложенный в него.* / дисплей: блок; } nav ul ul { / * Удаляем элемент из потока документов * / позиция: абсолютная; / * Позиция относительно родительского элемента & lt; li & gt; * / слева: 210 пикселей; верх: 0; верхняя граница: 1px solid # e9e9e9; дисплей: нет; } nav ul ul li { ширина: 200 пикселей; фон: # f1f1f1; граница: 1px solid # e9e9e9; граница-верх: 0; } nav ul ul li a { цвет: # a8a8a8; размер шрифта: 12 пикселей; текстовое преобразование: нет; } nav ul ul li a: hover { цвет: # 929292; }
100 отличных руководств по меню CSS
Зарегистрироваться сейчас
Собирайте информацию, платежи и подписи с помощью настраиваемых онлайн-форм.
- Зарегистрируйтесь в Google
- Зарегистрируйтесь через Facebook
ИЛИ ЖЕ
Уже есть аккаунт? Вход
С возвращением!
Собирайте информацию, платежи и подписи с помощью настраиваемых онлайн-форм.
- Войти через Google
- Войти с Facebook
- Войти через Apple
ИЛИ ЖЕ
Нет учетной записи? Зарегистрироваться
Зарегистрироваться сейчас
- Зарегистрируйтесь в Google
- Зарегистрируйтесь через Facebook
ИЛИ ЖЕ
Вскоре вы получите инструкции по сбросу пароля по электронной почте.
Если вы не получили письмо, проверьте папку со спамом.
Если вам нужна дополнительная помощь, обратитесь в нашу службу поддержки.
OkCSS3 Меню. Бесплатная программа создания меню CSS
Что нового
CSS3 Menu v5.3 (7 января 2021 г.)
* 7 новых скинов: Bulgy, Delicacy, Eight, Elite, Impressive, Recent и Eternity* Новый шрифт значка
* HTML5-видео после сохранения
* Предотвращенные ошибки валидатора W3C
* Добавлен метатег для мобильной реакцииCSS3 Menu v5.2 (16 мая 2020 г.)
* Новые плоские скины: Lilt и Magnetic* Улучшенный адаптивный дизайн. Теперь меню сворачивается до единственной кнопки гамбургера на нижнем экране, которая расширяется, когда вы нажимаете или щелкаете по ней. Смотрите — мы строим программное обеспечение
* Исправления ошибокCSS3 Menu v4.9 (12 марта 2019 г.)
* Новые плоские скины: Neat, Refined, Facet и Jalousie* Новые наборы плоских значков: Smart-серый и Smart-оранжевый
CSS3 Меню v4.7 (30 января 2018 г.)
* Новые плоские скины: Posh, Boundary* Новые наборы плоских иконок: синий Smart, зеленый фантазия
CSS3 Menu v4.6 (12 декабря 2017 г.)
* Новые плоские скины: Sparkle и Volume* Новые наборы плоских иконок: белый и красный
.CSS3 Menu v4.5 (14 ноября 2016 г.)
* Новые плоские скины: Gleam, Sublime и Blurring* Новые наборы плоских иконок: контурные и геометрические
CSS3 Меню v4.4 (10 октября 2013 г.)
* Новые плоские скины: Marker и Smoke* Новые наборы плоских иконок: креатив, радуга и канцелярская кнопка
CSS3 Menu v4.3 (18 сентября 2013 г.)
* Новые плоские скины: Metropolitan и Cloud* Новые наборы плоских иконок: Стильный-Базовый, Стильный-Компьютерный, Стильный-Природа, Городской, Мультфильм, Минималистский
* Новые языки для сайта: шведский и японский.
* Исправления ошибокCSS3 Menu v4.2 (12 сентября 2013 г.)
* Новые плоские скины: Stitch, Flat Solid, Neoteric* Обновлен список доступных веб-шрифтов Google — Dosis , Ledger , Yanone Kaffeesatz Добавлены шрифты
* Исправлены проблемы с шаблоном Balance в браузере Internet Explorer
* Новые языки для сайта: итальянский и русский.
* Исправления ошибокCSS3 Menu v4.0 (15 июня 2013 г.)
* 3 новых набора значков (Cosmo, Eldorado, Flat), всего 388 значков, каждый в нескольких размерах:CSS3 Меню v3.9 (13 июня 2013 г.)
* Новые шаблоны меню: Flat, Metro, Graffito и Motion:* Обновлен мастер «Вставить на страницу».
* Основные и мелкие исправления.CSS3 Menu v3.8 (6 марта 2013 г.)
* Новые шаблоны меню: Reflex и Sphere:* Поддержка веб-шрифтов Google.
* Основные и мелкие исправления.CSS3 Menu v3.7 (20 февраля 2013 г.)
* Новые шаблоны меню: Radiance и Syndicate:* Основные и мелкие исправления.
CSS3 Menu v3.5 (23 января 2013 г.)
* Новые шаблоны меню: Balance and Inspire:* Новые языки интерфейса: латышский, сербский
* Основные и мелкие исправления.CSS3 Menu v3.1 (3 июля 2012 г.)
* Новые шаблоны меню: Push (гибкое раскрывающееся меню), Paradox, Hybrid, Nebula, Nexus, Pure, Crystalline, Push Plastic, Enigma:* Новые языки интерфейса: африкаанс, французский, индонезийский, итальянский, румынский, словацкий, украинский
* Добавлен параметр «Автоматический размер»
* Добавлен параметр «Ширина 100%»
* Добавлен параметр «Адаптивный» (живая демонстрация )
* Добавлен параметр «Указатель меню».Теперь вы можете добавить несколько отдельных меню на страницу
* Расширен список кроссплатформенных шрифтов
* Основные и мелкие исправления.CSS3 Menu v2.3 (2 февраля 2012 г.)
* Новые шаблоны меню: Core, Current, Enterprise:* Эффект скольжения для выпадающего меню. Сделано только на CSS3. (Демонстрация анимации CSS3)
* Эффект перехода элемента. Сделано только на CSS3. (Демонстрация перехода CSS3)
* Улучшен режим RTL.CSS3 Меню v2.2 (14 декабря 2011 г.)
* Новые шаблоны вертикального меню: Blocks, Modern, Elegant, Point, Charge (живая демонстрация):* Новые языки интерфейса: хорватский, голландский, немецкий, польский, португальский, испанский, шведский, турецкий, русский
* Режим RTL (справа налево) (живая демонстрация):
* Эффект затухания для выпадающего меню. Сделано только на CSS3, работает в современных FF, Opera, Chrome, Safari
* Множество мелких улучшений в шаблонах меню и приложении
CSS3 Menu v2.0 (9 мая 2011 г.)
* Новые шаблоны меню.* Исправлена проблема с градиентом в Opera
* Некоторые изменения в графическом интерфейсе для повышения удобства использования
* Мелкие исправления ошибок
CSS3 Menu v1.9 (4 марта 2011)
* 28 новых шаблонов меню. Все шаблоны созданы на чистом CSS3, без JavaScript и изображений (изображения используются только для иконок).* Непрозрачность подменю.
* Ширина и высота меню. Устанавливает ширину или высоту верхнего меню.
* Выравнивание текста.
CSS3 Menu v1.7 (11 ноября 2010 г.)
* 36 новых шаблонов меню.CSS3 Menu v1.6 (3 ноября 2010 г.)
* Исправления ошибок.CSS3 Menu v1.5 (1 октября 2010 г.)
* Мега выпадающее меню — вариант с несколькими столбцами / мегаменю для подменю.* 20 новых шаблонов меню.
* Панель «Иконка». Легко добавляйте красивые значки к пунктам меню!
* 22 новых набора значков, всего 2900+ значков, каждый в нескольких размерах.
* Опция «Высота меню». Устанавливает высоту верхнего меню.
* «Радиус меню» и «Радиус элемента» для настройки закругленных углов.
* Исправление ошибок.CSS3 Меню v1.2 (16 июня 2010 г.)
* Новые шаблоны для вертикальных меню!
* Используйте кнопки «Переместить элемент» на панели инструментов, чтобы изменить порядок элементов внутри меню.
* Укажите радиус верхнего меню и подменю с помощью ползунков «Радиус».
CSS3 Menu v1.0 (31 мая 2010 г.) — Первый выпуск!
Получить полную версию
CSS3Menu бесплатен для некоммерческого использования. Если вы хотите использовать CSS3Menu на школьном сайте, в своем некоммерческом блоге или на веб-сайте некоммерческой организации, просто скачайте CSS3Menu и используйте его бесплатно.
Для коммерческого использования требуется лицензионный сбор. CSS3Menu Commercial Edition дополнительно предоставляет возможность создания многоколоночных меню и включает расширенные наборы шаблонов меню и значков. После того, как вы завершите оплату через безопасную форму, вы немедленно получите информацию о лицензии по электронной почте. Вы можете выбрать наиболее подходящий способ оплаты: кредитная карта, банковский перевод, чек, PayPal и т. Д.
Справка
См. Также:
Технические вопросы
Вопросы о лицензии
Недавние вопросыВидеоуроки:
Как создать простое меню с помощью CSS3Menu
Как создать чистое меню css для вашего веб-сайта
Как получить HTML-код CSS3MenuКак создать классное анимированное меню CSS3 без Javascript
1) Откройте программное обеспечение меню CSS3 и нажмите кнопки «Добавить элемент» и «Добавить подменю», расположенные на панели инструментов меню CSS3, чтобы создать свое меню.Вы также можете использовать «Удалить элемент» для удаления некоторых кнопок.
2) Используйте готовые шаблоны . Для этого просто выберите понравившуюся тему в «Шаблонах». список. Дважды щелкните тему, которую хотите применить.
3) Настройте внешний вид меню.
3.1. Выберите элемент, щелкнув по нему, и измените внешний вид кнопки на нормальный и наведенный состояния и настройка свойств ссылки кнопок и атрибутов цели ссылки на вкладке «Главное меню».
3.2. Выберите элемент подменю, щелкнув по нему, и измените внешний вид подменю на нормальный и при наведении. состояния и установка свойств ссылки элемента подменю и атрибутов цели ссылки на вкладке «Подменю».4) Сохраните свое меню.
4.1. Сохраните файл проекта. Для сохранения проекта просто нажмите кнопку «Сохранить» на панели инструментов. или выберите «Сохранить» или «Сохранить как…» в главном меню.
4.2. Опубликуйте свое меню в формате HTML. Для этого нажмите «Опубликовать». кнопку на Панели инструментов.Свяжитесь с нами
Меню CSS3
Для устранения неполадок, запросов функций и общей справки, обратитесь в службу поддержки клиентов по адресу. Убедитесь, что включить информацию о вашем браузере, операционной системе, Версия меню CSS3, ссылка на вашу страницу.
В большинстве случаев вы получите ответ в течение 1 рабочего дня. Пожалуйста, прочтите сначала ответы на часто задаваемые вопросы, чтобы узнать, есть ли уже ответ на ваш вопрос.
Электронная почта:Выпадающих меню | Онлайн-генератор
Выпадающее меню, созданное нашим онлайн-приложением,
отвечает всем требованиям для профессиональной навигации по сайту.Несколько уровней иерархии
Структура меню может включать несколько уровней иерархии. Это позволяет создать наиболее эффективную и профессиональную систему навигации для вашего сайта.
Горизонтальная или вертикальная ориентация
Меню навигации веб-сайта обычно бывает двух ориентаций: горизонтальной или вертикальной.Выберите ориентацию для вашей навигационной панели одним щелчком мыши.
Подменю с несколькими столбцами
Если подменю представляет собой длинный список элементов, просто разделите его на столбцы. Добавьте вертикальную линию между столбцами, чтобы сделать макет более привлекательным.
Векторные иконки
Инструмент включает в себя набор из 120+ самых популярных иконок.Он содержит общие значки, значки для социальных сетей, многоцелевые значки и другие. Используйте его или импортируйте свой собственный набор значков.
Веб-шрифты
Коллекция предлагает более 60 самых популярных веб-шрифтов. Использование нестандартных шрифтов придаст вашему меню привлекательный вид, соответствующий тематике вашего сайта.
Изображения
Люди быстрее обрабатывают визуальную информацию.Добавление изображений в меню дает посетителям визуальные подсказки о содержании сайта и добавляет приятный дизайн вашему сайту.
Интеллектуальное поведение
Меню представляет собой интеллектуальную систему — оно отображает подменю на доступном пространстве экрана. Они отображаются поверх ротаторов изображений и Flash-роликов. Специальная логика перестановки предотвращает «наложение» подменю.
Адаптивная панель
Если ширина области просмотра меньше ширины панели навигации, появляется альтернативное компактное меню.Компактное меню поддерживает расширяемые / сворачиваемые подменю.
Быстрый и легкий
Меню представляет собой небольшой файл JavaScript. Никаких дополнительных библиотек вроде jQuery. Он не увеличивает размер страниц и обеспечивает точный ответ на действия пользователя.
40 лучших примеров и практик в 2020 году
Четкое и хорошо структурированное раскрывающееся меню помогает пользователям перемещаться по веб-сайту / приложению, сужать их выбор и легко экономить место на экране.Таким образом, он широко используется для панелей навигации веб-сайтов / приложений, панелей поиска или панелей вкладок для улучшения UX.
Однако для UI / UX-дизайнеров настоящая проблема состоит в том, как сделать их простыми, эффективными и достаточно привлекательными.
В этой статье Mockplus собрал 40 лучших примеров дизайна раскрывающихся меню с возможностью нажатия и наведения, а также передовых методов, чтобы вы могли вдохновиться и с легкостью создавать отличительные раскрывающиеся меню для своих веб-сайтов / приложений.
Для вашего вдохновения включено множество дизайнов раскрывающихся меню для панелей навигации, панелей поиска, панелей вкладок и даже плавающих кнопок или значков.
30 лучших примеров дизайна раскрывающегося меню для вашего вдохновения 1. ConverseConverse — это модный интернет-сайт, на котором продается обувь, одежда и снаряжение. В его интерактивном раскрывающемся меню навигации есть потрясающее раскрывающееся подменю с двумя столбцами, чтобы направлять пользователей. Предоставляются богатые эффекты наведения, чтобы помочь пользователям легко выбрать желаемые параметры меню.
2. Santa CruzSanta Cruz — это интернет-магазин велосипедов, в котором есть довольно креативные выпадающие меню навигации, в которых отображаются разные велосипеды с изображениями.Посетители веб-сайта могут легко получить представление о том, что они увидят в этом магазине. Это хорошая идея, чтобы все веб-сайты интернет-магазинов следили за ними, чтобы улучшить пользовательский интерфейс.
3. Helias OilsHelias Oils — это веб-сайт, посвященный чистым эфирным маслам, который также имеет привлекательные раскрывающиеся меню навигации в сочетании с изображениями продуктов. Он также использует приятные эффекты наведения и волнистые переходы для привлечения пользователей.
4. Вихревое раскрывающееся меню CSS3Вращающееся раскрывающееся меню CSS3 — это уникальный шаблон раскрывающегося меню, легко создаваемый с помощью CSS.Когда вы наводите курсор на верхние пункты меню, они появляются с крутым эффектом кружения. Если вам интересно, просто нажмите ссылку на учебник, чтобы узнать больше.
5. Lion BurgerLion Burger имеет очень привлекательную строку раскрывающегося меню в виде кнопок. Пункты подменю сделаны с характерными эффектами наведения. Более того, элементы красной кнопки и белый текст действительно отлично работают на темном фоне страницы.
6. CSS3 Slide Drop Down Box MenuCSS3 Slide Drop Down Box Menu — еще один красивый шаблон выпадающего меню навигации с очень крутым эффектом скольжения.При наведении указателя мыши на пункт меню появится миниатюра изображения, а соответствующие подменю будут плавно перемещаться вправо / влево. Вы также можете щелкнуть нижнюю ссылку, чтобы просмотреть руководство по CSS.
7. Адаптивное раскрывающееся меню навигацииАдаптивное раскрывающееся меню навигации происходит из шаблона веб-сайта рецептов Bootstrap. Его раскрывающееся меню состоит из трех столбцов подменю для демонстрации категорий рецептов. Значительный слайдер с изображением справа также помогает пользователям быстро выбрать правильный рецепт.
8. Выпадающее меню BryanВыпадающее меню Bryan — это интеллектуальное многоуровневое раскрывающееся меню. Пользователи могут легко навести указатель мыши на верхний элемент, чтобы шаг за шагом отобразить все элементы подменю. Он идеально подходит для веб-сайтов с очень сложной системой навигации.
9. PopSocketsPopSockets — это красивый веб-сайт для онлайн-покупок по телефону, в его раскрывающемся меню навигации используются красочные иллюстрации для презентации продуктов, что делает впечатляющую визуальную привлекательность.
10. Исследование минимального раскрывающегося менюИсследование минимального раскрывающегося меню — это классное минималистичное раскрывающееся меню навигации. Все его пункты главного меню были упрощены в виде очень тонких цветных полос. При наведении курсора на них всплывают элементы подменю, чтобы направлять пользователей. Идеальный пример для создания минималистичного веб-сайта.
11. Раскрывающееся меню Creative со значкамиРаскрывающееся меню Creative со значками — это чистое и хорошо продуманное раскрывающееся меню навигации.Он оформлен в очень модной бело-голубой цветовой гамме. И каждый элемент подменю хорошо структурирован и имеет очень яркие значки штрихов.
12. Выпадающее меню Zenith Arena De LilleВыпадающее меню Zenith Arena De Lille специально создано для многоцелевой крытой арены. Поскольку все их мероприятия расписаны по месяцам, пользователи могут легко щелкнуть, чтобы отобразить или скрыть полный список событий за месяц, и выбрать желаемое для просмотра деталей.
13.Выпадающее меню SkySmileВыпадающее меню SkySmile использует градиентный цвет фона для выделения раскрывающихся меню. И синяя цветовая схема также отлично сочетается с фоном домашней страницы.
14. Минимальное взаимодействие с раскрывающимся менюМинимальное взаимодействие с раскрывающимся меню — это очень классическое раскрывающееся меню для кнопки с плавающим значком. При наведении курсора на кнопку появляется раскрывающееся меню, состоящее из значков, предлагающее различные варианты навигации.Он идеально подходит, чтобы помочь вам создать минималистичное мобильное приложение.
15. Раскрывающееся меню мобильного приложенияРаскрывающееся меню мобильного приложения — еще один хороший пример, которому дизайнеры могут следовать, чтобы создать отличное раскрывающееся меню для минималистичных мобильных приложений. Он использует не только элементы подменю значков, но также имеет очень творческий эффект скольжения для яркого отображения параметров.
16. Дизайн раскрывающегося окна уведомленийДизайн раскрывающегося окна уведомлений — это отличный дизайн раскрывающегося меню для минималистичных веб-сайтов для демонстрации новостей уведомлений.Когда пользователи наводят курсор на верхний значок уведомления, мгновенно появляется раскрывающийся список, в котором отображаются различные новости с уведомлениями. Соответствующее время, люди и ключевые слова новостей также будут показаны для быстрого сканирования.
17. Выпадающее меню уведомленийРаскрывающееся меню уведомлений — еще одно красивое раскрывающееся меню, предназначенное для кнопок со значками уведомлений. В отличие от предыдущего примера, заполненного изображениями и информацией, это раскрывающееся меню уведомлений имеет очень минималистичный вид и использует милые иллюстрации кошек и ярко-розовые цвета, чтобы привлечь внимание посетителей.
18. HTML-анимация раскрывающегося менюHTML-анимация раскрывающегося меню специально создана для минималистских веб-сайтов для отображения / скрытия меню навигации. Он имеет уникальную медленно опускающуюся анимацию. Он также предоставляет пользователям коды HTML / CSS / JS. Если вам интересно, вы можете напрямую скопировать и вставить эти коды в свой дизайн для более быстрой и простой разработки.
19. О нас Анимация выпадающего менюО нас Анимация выпадающего меню — это выпадающее меню, предназначенное для раздела «О нас».Он имеет умную всплывающую анимацию. И каждый элемент подменю имеет плоский значок, чтобы помочь пользователям легко найти информацию об элементе.
20. Интерактивные раскрывающиеся менюИнтерактивные раскрывающиеся меню — это раскрывающееся меню, предназначенное для панели фильтров. После этого пользователи могут легко выбрать параметры фильтра, такие как тип дома, спальни, удобства и т. Д., Чтобы найти желаемые результаты. Это хороший пример того, как создавать интерактивные раскрывающиеся меню для полос поиска / фильтров.
21. Раскрывающееся меню магазинаРаскрывающееся меню магазина использует значки только для представления различных категорий продуктов.
22. Mini CooperMini Cooper — это крутой автомобильный веб-сайт, который использует хорошо продуманное раскрывающееся меню навигации. Он имеет богатые стили подменю и эффекты зависания.
23. Board StarBoard Star — это интернет-магазин сноубордов.Его раскрывающееся меню навигации имеет характерный стиль ретро-дизайна и использует интуитивно понятный список и дизайна карточек для предоставления различных вариантов продукта.
24. PorschePorsche — еще один стильный автомобильный веб-сайт, который использует великолепное раскрывающееся меню навигации. При наведении указателя мыши на автомобиль справа появится соответствующее изображение, что позволит вам быстро просмотреть автомобиль заранее.
25. AudiAudi — это известный автомобильный веб-сайт с интуитивно понятным раскрывающимся меню навигации.Как и Porsche, в его раскрывающихся подменю используются изображения автомобилей. Однако он также имеет очень иную и эффективную компоновку для представления деталей автомобиля.
26. Sony Play StationSony Play Station имеет отличное раскрывающееся меню навигации, на которое можно нажимать, и все его подменю состоят из креативных жирных значков. Прекрасный пример создания привлекательного графического меню.
27. Mr CleanMr Clean предлагает различные чистые продукты и решения.На его официальном веб-сайте используется великолепное раскрывающееся меню навигации, состоящее из изображений продуктов и коротких этикеток.
28. KFCKFC использует вертикальное раскрывающееся меню для помощи в навигации. Анимация подменю тоже очень крутая.
29. Taco BellTaco Bell может помочь пользователям быстро найти в Интернете вкусные меню или близлежащие магазины. На его веб-сайте есть потрясающая боковая панель навигации, в которой используются вертикальные раскрывающиеся меню.
30.Bern TourismBern Tourism — это туристический веб-сайт, который может помочь посетителям найти лучшие события, достопримечательности и развлечения в Швейцарии. Он использует многоуровневое раскрывающееся меню навигации с интеллектуальной панелью вкладок.
10 советов по раскрывающемуся меню, которым вы должны следоватьПосле просмотра всех этих примеров раскрывающихся меню вы можете захотеть узнать, что вообще может быть хорошим раскрывающимся меню и каким советам вы должны следовать, чтобы создать хорошее раскрывающееся меню. выпадающее меню.
Итак, мы также собрали 10 лучших практик для дизайна раскрывающихся меню, чтобы объяснить, каким советам вы должны следовать, чтобы быстро создать более полезный и эффективный дизайн раскрывающегося меню:
1. Держите меню меньше двух уровни глубокиеСлишком длинные или сложные раскрывающиеся меню могут доставлять неудобства пользователям, а иногда даже заставлять их терять фокус в меню. Таким образом, вы всегда должны держать раскрывающиеся меню ниже двух уровней.
Возьмем в качестве примера веб-сайт Slack. Он использует двухуровневое раскрывающееся меню для четкого и интуитивно понятного представления информации о ресурсах.
Конечно, если вам действительно нужно меню с более чем двумя уровнями, эффект наведения или выбора может помочь вам направить внимание пользователей, позволяя им быстро находить нужные параметры меню.
Например, WooCommerce использует эффекты умного наведения для пошагового отображения пунктов меню.
2. Создание четких и хорошо структурированных раскрывающихся менюПри разработке раскрывающегося меню очень важно иметь чистый, хорошо структурированный и читаемый список элементов.Чтобы добиться этого, вы должны учитывать множество факторов, таких как читаемый шрифт, четкая типографика, достаточный интервал и даже аккуратная структура / макет и т. Д.
На веб-сайте музыкального оборудования ниже показано, как создать хорошо структурированный горизонтальный перепад. раскрывающееся меню с использованием различных шрифтов, размеров шрифтов, цветов, значков и макетов:
3. Добавьте эффекты наведения или выделения, чтобы выделить пункты менюЧтобы создать эффективное раскрывающееся меню, вы должны добавить один, два или другие эффекты наведения или выделения, чтобы направлять пользователей.
Например, при наведении указателя мыши на раскрывающееся меню футбола ниже появится ярко-синий фон и белый значок, чтобы выделить выбранный вами пункт меню. Это поможет вам быстро найти нужные пункты меню.
Также обратите внимание, что вы всегда должны сосредотачиваться на времени закрытия эффекта наведения. Слишком длинное или короткое и то и другое может вызвать проблемы у пользователей.
4. Используйте значки или изображения для обогащения раскрывающихся меню.Не существует фиксированного способа создания раскрывающегося меню.Помимо использования различных шрифтов, типографий и цветов, вы все равно можете добавлять собственные значки и изображения, чтобы обогатить свои меню.
Как и на веб-сайте JetBlue ниже, вы все равно можете использовать богатые изображения, значки и тексты для создания более привлекательного и эффективного раскрывающегося меню.
5. Поддерживайте единообразие стилей менюПри разработке раскрывающегося меню следует использовать похожие стили, фон и изображения меню, чтобы все меню работало как единое целое.
В качестве примера возьмем указанный ниже веб-сайт, посвященный компьютерам Dell. Он использует двухуровневые раскрывающиеся меню с одинаковыми стилями текста и изображений для привлечения посетителей.
6. Невозможные пункты меню выделены серымКогда некоторые продукты или услуги отсутствуют в наличии или временно недоступны, слепое удаление соответствующих пунктов меню может нарушить всю компоновку, что затрудняет просмотр и навигацию пользователями. В этот момент вы можете сразу их выделить серым, чтобы избежать проблем.
Непосредственное выделение серым цветом пунктов меню не повлияет на весь макет, сэкономив вам больше времени на обработку недоступных параметров.
7. Добавление быстрой выпадающей анимацииВы также можете добавить быструю выпадающую анимацию (например, анимацию скольжения, затухания, прыжка или вращения) для привлечения пользователей.
Например, на следующем веб-сайте Mediate Template используется привлекательная скользящая анимация для привлечения пользователей:
8.Используйте полупрозрачный фон, чтобы выделить ваше меню.Чтобы выделиться из раскрывающегося меню, вы можете использовать полупрозрачный фон.
На приведенном ниже веб-сайте Econsultancy используется полупрозрачный фон для легкого выделения всего раскрывающегося меню:
9. Используйте другой цвет фона для выделения своих менюВместо полу-родительского фона цветной Фон меню также помогает отличать раскрывающиеся меню от фона.
И этот веб-сайт Мебели дает хороший пример того, как выделить раскрывающееся меню другим цветом фона:
10. Регулярно проверять раскрывающееся менюЧто бы ни случилось, вы также всегда должны проверять раскрывающееся меню. регулярно открывайте меню, чтобы убедиться, что оно всегда хорошо работает.
В целом, мы надеемся, что эти творческие примеры и передовые методы могут вас вдохновить.
Как создать раскрывающееся меню?Если вы все еще не знаете, как создать раскрывающееся меню с нуля, есть два доступных способа:
1.Создайте раскрывающееся меню с помощью шаблона HTML / CSSДля дизайнеров UI / UX самый быстрый способ — использовать шаблон дизайна раскрывающегося меню. В Интернете доступно множество шаблонов HTML / CSS . Вы можете свободно искать тот, который вам нужен.
2. Создайте раскрывающееся меню с помощью инструмента дизайна.Однако, если вам не нужен шаблон, вы можете использовать инструмент дизайна для визуализации идей меню. Mockplus , универсальная платформа для разработки продуктов, — хороший вариант для вас.Он позволяет с легкостью создавать прототипы раскрывающихся меню, добавлять взаимодействия, тестировать, публиковать и передавать через Интернет.
ЗаключениеХорошо продуманное раскрывающееся меню помогает эффективно улучшить UX. Мы надеемся, что эти лучшие примеры дизайна раскрывающихся меню, передовые практики и советы по дизайну помогут вам легко создать отличный веб-сайт / приложение.
Меню — Pure
По умолчанию меню вертикальные.Минимальный стиль по умолчанию и селекторы с низкой специфичностью позволяют легко настраивать их. По умолчанию элементы меню занимают 100% ширины своего контейнера, поэтому вы можете ограничить ширину меню или настроить отображение меню: inline-block.
<стиль> .custom-limited-width { / * Чтобы ограничить ширину меню содержимым меню: * / дисплей: встроенный блок; / * Или явно задайте ширину: * / / * ширина: 10em; * / }
Чтобы создать горизонтальное меню, добавьте имя класса
pure-menu-horizontal
.Выбранные и отключенные элементы
Отметьте выбранный элемент списка, добавив к элементу списка класс
pure-menu-selected
.Чтобы пометить ссылку как отключенную, добавьте имя классаpure-menu-disabled
в элемент списка. Отключенные элементы выглядят блеклыми и не наследуют стили наведения.Выпадающие списки
Мы рекомендуем включать подменю с помощью JavaScript для обеспечения доступности.Чтобы помочь вам начать работу, пример сценария, написанный на ванильном JS, обеспечивает поддержку ARIA, ограниченную навигацию по подменю с помощью клавиш со стрелками и возможность закрывать меню с помощью внешнего события или клавиши ESC. Но вы можете пойти дальше, добавив обнаружение краев, комплексную навигацию с помощью клавиш со стрелками и полифилы для совместимости со старыми браузерами.
Даже с установленным JavaScript вы все равно можете отображать подменю при наведении курсора. Просто добавьте
pure-menu-allow-hover
в элемент спискаpure-menu-has-children
.Это может быть удобно для пользователей настольных компьютеров и является альтернативой для пользователей без JavaScript.Та же конструкция, которая используется для создания раскрывающихся списков, работает и в вертикальных меню.Вы можете вкладывать вложенные подменю, но имейте в виду, что сложные меню могут создавать проблемы с удобством использования на маленьких экранах.
Чтобы создать горизонтальное меню с возможностью прокрутки, добавьте имя класса
pure-menu-scrollable
.Когда места недостаточно, пункты меню можно прокручивать или пролистывать. Выпадающие меню не поддерживаются. Если вам нужна прокрутка на основе импульса, мы рекомендуем использовать библиотеку JS, например scrollbooster, для добавления таких эффектов.Чтобы создать прокручиваемое вертикальное меню, ограничьте высоту вашего меню, а затем добавьте имя класса
pure-menu-scrollable
.Пункты меню можно прокручивать или пролистывать. Подменю не поддерживаются.<стиль> / * Настройка для ограничения высоты меню * / .custom-limited { высота: 160 пикселей; ширина: 150 пикселей; граница: 1 пиксель сплошного серого цвета; радиус границы: 4 пикселя; }
Ознакомьтесь с нашими примерами макета, чтобы узнать, как можно использовать Pure в качестве основы для более сложных меню, например:
- Адаптивное вертикальное меню , которое сворачивается за гамбургером, подобно меню на этом веб-сайте Pure.