Как создать адаптивное выпадающее меню навигации с помощью CSS?
0 ∞ 1Из этого руководства вы узнаете, как с помощью CSS создать адаптивное выпадающее меню навигации. Для этого мы воспользуемся CSS flexbox и хаком с чек-боксами.
Верхняя панель навигации крайне важна для любого сайта. В этой статье описана одна из реализаций, которая адаптивна. А также не использует JavaScript для переключения выпадающего списка на мобильных устройствах.
- Настройка
- HTML
- CSS
- Хак с чекбоксом
- HTML
- CSS
- Для больших экранов
Создайте пустой HTML-документ и назовите его index.html. Добавьте в него базовый HTML-код.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> </body> </html>
Я использовала шрифт Font Awesome для иконки меню. Поэтому добавьте приведенную далее строку кода ниже тега <title>.
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0-2/css/all.min.css" rel="stylesheet">
Создайте файл styles.css и подключите его в HTML-документе:
<link rel="stylesheet" href="styles.css">
Я использовал в качестве логотипа приведенное ниже изображение. Вы можете добавить свое собственное изображение.
Добавьте следующий HTML-код в тег <body>
<header> <div> <img src="logo.png" alt="Logo"> <nav> <ul> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> <li><a href="#">Services</a></li> <li><a href="#">Contact</a></li> </ul> </nav> <i></i> </div> </header>
Элемент header формирует темную панель навигации, содержащую все остальное. Также у нас есть div menu-wrap, который является контейнером для логотипа, ссылок навигации и иконки меню.
В файл styles.css добавим несколько стилей для всех элементов:
* { margin: 0; padding: 0; box-sizing: border-box; font-family: sans-serif; }
Затем примените эти стили к header.
header { height: 70px; background-color: #22292F; padding: 10px 0; }
Теперь темная панель навигации растягивается на всю ширину окна просмотра.
Добавьте приведенные ниже стили к классу menu-wrap:
.menu-wrap { display: flex; justify-content: space-between; padding: 0 15px; }
Мы используем display:flex, чтобы все дочерние элементы занимали свободное пространство, доступное горизонтально. Свойству justify-content установлено значение space-between, чтобы расположить эти элементы как можно дальше друг от друга.
Стилизуем каждый из этих дочерних элементов один за другим.
.logo-img { height: 50px; } .menu-icon { font-size: 2. 4em; color: #ffffff; line-height: 50px; }
В результате мы получили правильно позиционированные логотип и иконку нужного размера. Теперь нужно на мобильных устройствах абсолютно позиционировать все пункты меню ниже панели. Сначала добавьте следующий код:
nav { position: absolute; background-color: #3D4852; top:70px; left:0; width: 100%; }
Теперь добавьте стили списка и ссылок:
nav ul { list-style-type: none; } nav ul li { padding: 0 15px; } nav ul li a { display: inline-block; padding: 12px; /* Добавьте ниже свои пользовательские стили, чтобы изменить отображение ссылок */ color: #DAE1E7; text-decoration: none; letter-spacing: 0.05em; }
Также добавьте для ссылок стили при наведении и фокуса:
nav ul li a:hover, nav ul li a:focus { color: #eb6f4a; }
Теперь в браузере отображается следующее:
Меню должно быть сначала скрыто и отображаться при нажатии на иконку. Для этого добавьте к элементу nav ul дополнительные стили max-height, overflow, а также transition:
nav ul li a:hover, nav ul li a:focus { color: #eb6f4a; }
Этот код скроет все меню, потому что для свойства max-height задано значение 0, а для свойства overflow:hidden. Мы не используем для скрытия меню display:none, потому что нам нужен эффект анимации скольжения меню вниз. Он может быть достигнут только с помощью свойства max-height.
Нам нужно переключить отображение меню, используя только CSS. Лучший способ сделать это – использовать скрытый чекбокса.
Мы используем иконку гамбургера в качестве метки для этого чекбокса. После нажатия метки чекбокс будет выбран. Поэтому мы можем использовать селектор псевдокласса :checked, чтобы отобразить меню!
В файле index.html добавьте элемент checkbox перед элементом nav:
<input type="checkbox">
В этом коде for=”checkbox” обеспечивает, чтобы чекбокс был установлен / снят при каждом нажатии на эту метку.
Сначала нужно скрыть чекбокс. Для этого в файл styles.css добавьте следующий код:
#checkbox { display: none; }
Это сердце кода:
#checkbox:checked ~ nav ul { max-height: 200px; padding: 15px 0; transition: all 0.5s; }
Символ ~ является общим селектором следующего смежного элемента, который отделяет два селектора (#checkbox:checked и nav ul).
А также соответствует второму элементу, только если он следует за первым. Когда чекбокс установлен, меню сдвигается вниз, потому что значение свойства max-height изменяется от 0 до большого числа.Иконка гамбургера не должна отображаться на больших экранах, на которых достаточно места для вывода ссылок.
Поэтому добавим несколько медиазапросов для размеров экрана планшета и больше, чтобы отобразить непосредственно ссылки вместо иконки меню. В файл styles.css добавьте приведенный ниже медиа-запрос.
@media (min-width: 768px) { }
В нем сначала спрячьте иконку меню.
@media (min-width: 768px) { .menu-icon { display: none; } }
Обязательно увеличьте размер окна браузера до ширины, превышающей 768 пикселей, чтобы увидеть следующие изменения.
Теперь добавьте стили, чтобы позиционировать элемент nav относительно и изменить цвет его фона. Затем добавьте display:inline-flex для nav ul li, чтобы разместить ссылки рядом друг с другом.
@media (min-width: 768px) { nav { position: relative; top:-10px; background-color: transparent; } nav ul { max-height: 70px; padding: 15px 0; text-align: right; } nav ul li { display: inline-flex; padding-left: 20px; } }
Теперь вы знаете, как создать адаптивное выпадающее меню навигации, которое отображает пункты на навигационной панели для больших экранов. Но при этом отображает иконку гамбургера для небольших экранов.
СКАЧАТЬ ИСХОДНЫЙ КОД
Вадим Дворниковавтор-переводчик статьи «How To Create a Responsive Dropdown Navigation Using Only CSS»
Пожалуйста, опубликуйте свои отзывы по текущей теме статьи. За комментарии, подписки, отклики, лайки, дизлайки низкий вам поклон!
Создаем меню с подкатегориями в CSS
На чтение: 1 минРубрика: HTML, CSSОбновлено: 23 декабря, 2021
Код:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>hover</title> <style> ul { width: 180px; /* Ширина меню */ list-style: none; /* Для списка убираем маркеры */ margin: 0; /* Нет отступов вокруг */ padding: 0; /* Убираем поля вокруг текста */ font-family: Arial, sans-serif; /* Рубленый шрифт для текста меню */ font-size: 10pt; /* Размер названий в пункте меню */ } li ul { position: absolute; /* Подменю позиционируются абсолютно */ display: none; /* Скрываем подменю */ margin-left: 165px; /* Сдвигаем подменю вправо */ margin-top: -2em; /* Сдвигаем подменю вверх */ } li a { display: block; /* Ссылка как блочный элемент */ padding: 5px; /* Поля вокруг надписи */ text-decoration: none; /* Подчеркивание у ссылок убираем */ color: #666; /* Цвет текста */ border: 1px solid #ccc;/* Рамка вокруг пунктов меню */ background-color: #f0f0f0; /* Цвет фона */ border-bottom: none; /* Границу снизу не проводим */ } li a:hover { color: #ffe; /* Цвет текста активного пункта */ background-color: #5488af; /* Цвет фона активного пункта */ } li:hover ul { display: block; /* При выделении пункта курсором мыши отображается подменю */ } .brd { border-bottom: 1px solid #ccc; /* Линия снизу */ } </style> </head> <body> <ul> <li><a href="/">Категория 1</a> <ul> <li><a href="/">Подкатегория 11</a></li> <li><a href="/">Подкатегория 12</a></li> <li><a href="/">Подкатегория 13</a></li> <li><a href="/">Подкатегория 14</a></li> </ul> </li> <li><a href="/">Категория 2</a> <ul> <li><a href="/">Подкатегория 21</a></li> <li><a href="/">Подкатегория 22</a></li> <li><a href="/">Подкатегория 23</a></li> <li><a href="/">Подкатегория 24</a></li> </ul> </li> <li><a href="/">Категория 3</a> <ul> <li><a href="/">Подкатегория 31</a></li> <li><a href="/">Подкатегория 32</a></li> <li><a href="/">Подкатегория 33</a></li> <li><a href="/">Подкатегория 34</a></li> </ul> </li> <li><a href="/">Категория 4</a></li> </ul> </body> </html>
Демо данного примера можно посмотреть и скачать здесь.
Рейтинг автора
Написано статей
(8 оценок, среднее: 4,88 из 5)Для того чтобы оценить запись, вы должны быть зарегистрированным пользователем сайта. Загрузка…
1 146 просмотров
Понравилась статья? Поделиться с друзьями:
10 лучших систем мегаменю на JavaScript и чистом CSS (обновление 2023 г.)
Что такое мегаменю
Мегаменю — отличный способ продемонстрировать большое количество контента, не занимая слишком много места на экране. Они также могут помочь улучшить навигацию для пользователей, облегчая поиск того, что они ищут.
Как правило, мегаменю организует множество подкатегорий в раскрывающемся меню с несколькими столбцами и отображает их при наведении/нажатии основной категории.
Лучшее Мега Меню
В этом посте мы рассмотрим список из 10 лучших (самых популярных) систем навигации по мегаменю, реализованных на jQuery/Vanilla JavaScript или даже на Pure HTML/CSS. Мы также рассмотрим некоторые функции и преимущества мегаменю. Итак, если вы ищете вдохновение для своего следующего проекта, обязательно ознакомьтесь с этими потрясающими мега-меню!
Первоначально опубликовано 04 августа 2019 г., обновлено 6 февраля 2023 г.
0022
Плагины мегаменю jQuery:
Amazon Like Плагин выпадающего меню с jQuery — Menu Aim
Плагин jQuery для запуска событий, когда курсор пользователя направлен на определенные элементы выпадающего меню. Для создания адаптивных мега-выпадающих списков, таких как Amazon.
[Демо] [Скачать]
Создание доступного мегаменю с помощью jQuery и CSS3
Навигационный плагин jQuery для создания мегаменю, доступного с помощью клавиатуры и программы чтения с экрана, на веб-сайте, который включает в себя множество страниц и/или продуктов .
[Демо] [Скачать]
Плагин мегаменю для мобильных устройств с jQuery — hs Mega Menu
Плагин hs Mega Menu jQuery позволяет создавать отзывчивое, липкое, ориентированное на мобильные устройства и оптимизированное для SEO мегаменю для насыщенного контентом веб-приложения.
[Демо] [Скачать]
Современное выпадающее мегаменю в jQuery и CSS3
Адаптивное, стильное, удобное для мобильных устройств мегаменю (выпадающее меню с несколькими столбцами), созданное с использованием JavaScript (jQuery), CSS/CSS3 и вложенные HTML-списки.
[Демо] [Скачать]
Простой плагин jQuery Drop Down Mega Menu — Mega Menu
Простой и быстрый плагин меню jQuery для создания удобного многоколоночного выпадающего меню для веб-сайтов, которые включают много страниц и/или продуктов.
[Демо] [Скачать]
Vanilla JS Мега-меню Плагины:
Отзывчивое мега-меню В JavaScript
Современный адаптивный шаблон мега-меню для интернет-магазинов. Написан на чистом JavaScript и CSS/CSS3.
[Демо] [Скачать]
Полноэкранное мегаменю гамбургера с JS и CSS
Мегаменю гамбургера с анимированным полноэкранным наложением, созданным с помощью JavaScript и CSS/CSS3.
[Демо] [Скачать]
Вдохновленное Stripe.com выпадающее мегаменю с JavaScript
Анимированное выпадающее мегаменю, которое анимирует пункты меню при переключении между навигационными ссылками. Вдохновлен навигацией в шапке Stripe.com.
[Демонстрация] [Скачать]
Мегаменю на чистом CSS:
Создание простого мегаменю с помощью чистого HTML/CSS
Чистая выпадающая навигация на основе HTML/CSS, которая поможет вам реализовать многоколоночное мегаменю для ваших богатых -содержательный сайт.
[Демо] [Скачать]
Выпадающее мегаменю только с помощью CSS
Красивый, анимированный, многоуровневый компонент выпадающего мегаменю, созданный с использованием вложенных списков HTML и чистого CSS.
[Демо] [Скачать]
Заключение:
Хотите больше плагинов jQuery или библиотек JavaScript для создания великолепного Мегаменю в Интернете и на мобильных устройствах? Ознакомьтесь с разделами jQuery Mega Menu и JavaScript/CSS Mega Menu.
См. также:
- Лучшее адаптивное меню Плагины jQuery
- Лучшее адаптивное выпадающее меню
- Лучшие компоненты аккордеонного меню
- Лучшие плагины кругового меню
- Лучшие мобильные меню вне холста
- Лучшая плавающая кнопка действия (всплывающее меню) Плагины
- Лучшие плагины полноэкранной навигации
- Лучшие адаптивные меню JavaScript и CSS
- Лучшие мобильные навигационные системы вне холста
- Лучшие компоненты меню Vue.js для улучшения навигации по приложениям
5 лучших шаблонов меню боковой панели в HTML, CSS и JavaScript
Самым важным разделом веб-сайта или приложения является боковое меню. Это упрощает пользователю переход с одной страницы на другую. Хотя меню боковой панели являются важным компонентом как веб-сайта, так и приложения, мы можем создать их, используя только базовые HTML, CSS и JavaScript.
В этом блоге я придумал 5 лучших шаблонов меню боковой панели, созданных с помощью HTML CSS и JavaScript. В каждое боковое меню я добавил различные функциональные возможности и пользовательский интерфейс. Но удивительно то, что абсолютный новичок может сделать эту боковую панель с помощью простых навыков HTML, CSS и JavaScript. Недавно я предоставил 10 навигационных панелей, этот блог также будет вам полезен.
В основном меню боковой панели — это панель навигации, которая превращается в боковую панель на устройствах с маленьким экраном. Но в наши дни мы можем видеть боковую панель меню навигации и на устройствах с большими экранами.
Окей, давайте перейдем к нашему списку бокового меню.
1. Простой шаблон боковой панели в HTML и CSSЭто самое простое меню боковой панели в этом списке, созданное с использованием базового кода HTML и CSS. Тем не менее, я добавил все важные компоненты, которые должны быть в идеальном боковом меню.
Эта боковая панель может быть вашим лучшим выбором, если вы новичок и хотите создать потрясающую боковую панель, используя только HTML и CSS. Чтобы получить исходный код и видеоинструкцию для этого бокового меню, нажмите на указанную ссылку.
2. Простая боковая панель в HTML CSS и JavaScriptЭто еще одно простое боковое меню, созданное в HTML CSS и JavaScript. Чтобы открыть и закрыть этот Sibar, я использовал код JavaScript. В этом боковом меню я попытался добавить различные типы навигационных ссылок и их значков. Вы также можете использовать флажок, чтобы открывать и закрывать его, как я сделал над боковой панелью.
Если вы новичок и хотите создать эту боковую панель, то эта боковая панель может быть вам лучшим вариантом. Даже обладая базовыми навыками работы с HTML CSS и JavaScript, вы сможете создать эту боковую панель. Исходный код и видеоруководство по боковому меню можно найти по указанным ссылкам.
- Смотреть обучающее видео
- Скачать исходный код
Это лучшая боковая панель в этом списке, созданная в HTML CSS и JavaScript. Увлекательная часть этой боковой панели заключается в том, что когда вы закрываете меню боковой панели, становятся видны навигационные значки. Взгляните на изображение этого меню боковой панели: левая часть — открытая, а правая — закрытая часть боковой панели.
Это может быть лучшим выбором для вас, если вы ищете боковое меню с современными функциями, такими как всплывающая подсказка и панель поиска. Кроме того, вы можете создать это боковое меню в простом коде HTML CSS и JavaScript. Исходный код и видеоруководство для этого бокового меню можно найти по указанным ссылкам.
- Смотреть обучающее видео
- Скачать исходный код
Это улучшенная версия вышеуказанного бокового меню. В этом боковом меню я добавил раскрывающийся список. Когда вы нажимаете на значок раскрывающейся стрелки, появляется раскрывающийся раздел, и это боковое меню можно прокручивать.
Вам обязательно стоит попробовать сделать это боковое меню, потому что я включил в него все функции, которые должны быть в модной боковой панели. Чтобы просмотреть исходный код и видеоруководство по этому раскрывающемуся меню боковой панели, щелкните предоставленные ссылки.
- Смотреть обучающее видео
- Скачать исходный код
Это уникальное меню боковой панели в этом списке. Главной особенностью этого бокового меню является его темный и светлый режимы. Кроме того, я добавил окно поиска и кнопку переключения в это модное боковое меню. Внизу есть раздел переключения темного и светлого режимов, нажав на эту кнопку переключения, вы можете включить или выключить режим темного света.
Если вы ищете модное боковое меню с функцией темного и светлого режимов, то это боковое меню может удовлетворить ваши потребности.