Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
Компания Комета
ПРОДВИЖЕНИЕ ТОВАРОВ И УСЛУГ В ИНТЕРНЕТЕ
+7 495 118-37-73
+7 495 118-37-73
Заказать звонок
E-mail
support@cometa.agency
Адрес
г. Москва, пр. Серебрякова, 14, стр. 1
Режим работы
Пн. – Пт.: с 9:00 до 18:00
Подать заявку
Продукты
  • Готовые сайты
  • Лицензии 1С-Битрикс
  • Битрикс 24
Услуги
  • Продвижение сайтов
    • Продвижение интернет-магазинов
    • Продвижение по регионам
    • Аудит сайта и исправление технических ошибок
    • Консультация по продвижению сайта
  • SMM-продвижение
    • Pinterest для бизнеса
    • Контент завод
    • Продвижение Telegram
    • Продвижение ВКонтакте
  • Контекстная реклама
    • Настройка Яндекс.Директ
    • Аудит контекстной рекламы
    • Настройка контекстной рекламы
  • Разработка сайтов
    • Разработка сайта под услуги на 1С-Битрикс
    • Интернет-магазин на 1С Битрикс
    • Landing page - посадочные страницы
    • Поддержка сайтов на 1С-Битрикс
  • Репутационный маркетинг
    • SERM - формируем положительный имидж бренда
  • Обучение и курсы
    • Промт - инженер по созданию контента для социальных сетей
  • Продвижение медицины
    • Продвижение медицинских сайтов
    • Продвижение стоматологических клиник
    • YMYL-контент: что это такое и как с ним работать
    • Аудит медицинского сайта
    • Локальное SEO для клиники
    • Продвижение врачей
    • Продвижение зубной клиники
    • Продвижение косметологии
    • Продвижение медицинских сайтов в Москве
    • Продвижение медицинского центра
    • Продвижение медицинской лаборатории
    • Продвижение пластической хирургии
    • Продвижение центра репродукции
    • Репутационный маркетинг для клиник
Кейсы
  • Продвижение сайтов
  • Контекстная реклама
  • Социальные сети
  • Разработка сайтов и дизайн
Тарифы
  • Продвижение сайтов
    • Старт
    • Рост
    • Лидер
  • Контекстная реклама
    • Аудит рекламной кампании
    • Настройка и ведение рекламной кампании
  • Поддержка сайтов
    • Верстка
    • Дизайн
    • Контент
    • Поддержка 24/7
  • Продвижение в социальных сетях
    • Производство контента
    • Таргетированная реклама
    • Аудит аккаунтов в социальных сетях
    • Ведение социальных сетей (SMM)
Акции
Блог / База знаний
Новости
Компания
  • О компании
  • История, миссия, ценности
  • Команда и эксперты
  • Лицензии и сертификаты
  • Отзывы и благодарственные письма
  • Вакансии
  • Партнёры компании
Контакты
Правовая информация
  • Политика конфиденциальности
  • Пользовательское соглашение
  • Публичная оферта, реквизиты компании
  • Вопрос-ответ
  • Оплата
  • Обзоры
  • Возможности
Компания Комета
ПРОДВИЖЕНИЕ ТОВАРОВ И УСЛУГ В ИНТЕРНЕТЕ
Услуги
  • Продвижение сайтов
  • SMM-продвижение
  • Контекстная реклама
  • Разработка сайтов
  • Репутационный маркетинг
  • Обучение и курсы
  • Продвижение медицины
Тарифы
  • Продвижение сайтов
  • Контекстная реклама
  • Поддержка сайтов
  • Продвижение в социальных сетях
Кейсы
  • Продвижение сайтов
  • Контекстная реклама
  • Социальные сети
  • Разработка сайтов и дизайн
Компания
  • О компании
  • История, миссия, ценности
  • Команда и эксперты
  • Лицензии и сертификаты
  • Отзывы и благодарственные письма
  • Вакансии
  • Партнёры компании
Продукты
  • Готовые сайты
    Готовые сайты
  • Лицензии 1С-Битрикс
    Лицензии 1С-Битрикс
  • Битрикс 24
    Битрикс 24
    +7 495 118-37-73
    Заказать звонок
    E-mail
    support@cometa.agency
    Адрес
    г. Москва, пр. Серебрякова, 14, стр. 1
    Режим работы
    Пн. – Пт.: с 9:00 до 18:00
    Подать заявку
    Компания Комета
    Услуги
    • Продвижение сайтов
    • SMM-продвижение
    • Контекстная реклама
    • Разработка сайтов
    • Репутационный маркетинг
    • Обучение и курсы
    • Продвижение медицины
    Тарифы
    • Продвижение сайтов
    • Контекстная реклама
    • Поддержка сайтов
    • Продвижение в социальных сетях
    Кейсы
    • Продвижение сайтов
    • Контекстная реклама
    • Социальные сети
    • Разработка сайтов и дизайн
    Компания
    • О компании
    • История, миссия, ценности
    • Команда и эксперты
    • Лицензии и сертификаты
    • Отзывы и благодарственные письма
    • Вакансии
    • Партнёры компании
    Продукты
    • Готовые сайты
      Готовые сайты
    • Лицензии 1С-Битрикс
      Лицензии 1С-Битрикс
    • Битрикс 24
      Битрикс 24
      +7 495 118-37-73
      Заказать звонок
      E-mail
      support@cometa.agency
      Адрес
      г. Москва, пр. Серебрякова, 14, стр. 1
      Режим работы
      Пн. – Пт.: с 9:00 до 18:00
      Подать заявку
      Поддержка сайтов

      Настройка выпадающего меню

      По данным Baymard, 67% мобильных сайтов до сих пор показывают посредственный или слабый уровень навигации, а продуманный UX может заметно усиливать конверсию. Поэтому меню влияет не только на внешний вид страницы, но и на то, как пользователь находит разделы, читает контент и переходит по ссылкам.
      Подробнее
      Автор: Аркадий Зверев Время прочтения: 7 минут

      Содержание

      • Введение в работу с выпадающим меню
      • Основы создания выпадающего меню
      • HTML-структура для раскрывающегося меню
      • CSS-стилизация раскрывающегося меню
      • JavaScript для раскрывающегося меню
      • Часто задаваемые вопросы
      • Источники

      Введение в работу с выпадающим меню

      Дополнительно такой материал полезен в качестве базы для поддержки проекта: он содержит базовые определения, информацию для поиска причин сбоев и пример того, как начать изменения без лишних операций. Если панель навигации собрана грамотно, пользователь быстрее может открыть нужные вкладки, изменить выбор раздела и сохранить маршрут просмотра страницы даже при смене устройства.

      Грамотное меню помогает быстрее находить разделы, удерживает внимание и делает навигацию понятной на любой странице. Для SEO это тоже важно, потому что Google учитывает удобство работы, структуру страницы и качество размещения ссылок в верхней части сайта. Хорошо настроенное выпадающее меню помогает быстро открыть нужный раздел, сокращает число лишних кликов и делает верхнюю navbar понятной и на компьютере, и на телефоне. В этой статье разберём основы создания dropdown menu, HTML-структуру, CSS-оформление, работу button и поведение при hover.

      Основы создания выпадающего меню

      Перед тем как писать код, разложите меню по логике: главный пункт, вложенные разделы, глубина списка и порядок перехода между элементами навигации. Это помогает сразу понять, хватит ли простого списка, нужен ли многоуровневый вариант или лучше выбрать мега-формат для веб-интерфейса.

      Затем набросайте схему: где будет кнопка button, какой элемент li открывает вложенный список ul, какую ширину получает блок и как меню ведёт себя при смене размера экрана. Например, для корпоративного сайта удобно сначала собрать карту разделов, а уже потом переносить её в HTML-структуру: div-контейнер, navbar, список ul, пункты li и раскрывающийся dropdown-блок. Такой порядок экономит время и снижает число правок.

      На этом этапе полезно сразу определить тип меню, набор пунктов и то, как будет выглядеть панель на разных устройствах. Часто схему сначала собирают в Excel или даже в Word, чтобы вытащить повторяющиеся разделы, контакты, верхние ссылки и возможные сценарии просмотра. На этом этапе важно решить, будет ли меню простым, многоуровневым или адаптивным. Такой выбор влияет на дальнейшее использование CSS, JavaScript, hover-сценариев и позиционирования элементов.

      Схема выпадающего меню с dropdown-триггером, выпадающим блоком, подменю и эффектом наведения
      Схема показывает структуру dropdown menu: триггер, выпадающий блок с absolute-позиционированием, подменю и активные состояния при наведении.

      Такой подход помогает сохранить логику структуры, проверить шкалу приоритетов и заранее понять, какие инструменты нужны для дальнейшей работы. Даже если черновой пример выглядит простым, он помогает начать оформление без хаоса и избежать резких изменений в готовом интерфейсе.

      HTML-структура для раскрывающегося меню

      • Задайте контейнер <nav> для верхней навигации.
      • Внутри соберите <ul> и пункты списка.
      • Для раскрытия вложите второй <ul> в нужный пункт.
      <nav id="top-menu">
        <ul class="navbar">
          <li class="dropdown">
            <button class="dropbtn" type="button">Услуги</button>
            <ul class="dropdown-content">
              <li><a href="/seo/" class="menu-link">SEO</a></li>
              <li><a href="/design/" class="menu-link">Дизайн</a></li>
            </ul>
          </li>
        </ul>
      </nav>

      Базовая структура обычно содержит nav, div, ul и li. Один пункт списка становится родительским элементом, внутри которого размещается кнопка button или ссылка, а ниже — вложенный dropdown-блок с дополнительными пунктами. Такая HTML-основа помогает аккуратно создать структуру меню: ul отвечает за иерархию, li формирует пункты списка, href ведёт в нужные разделы, а class и id упрощают оформление, позиционирование и подключение JavaScript. Семантическая разметка делает контент понятнее для поисковых систем и улучшает доступность страницы.

      Если хотите усилить структуру, можно добавить внешний div вокруг навигации, отдельный заголовок блока и служебные элементы для подсказок, иконок или подписи к кнопке меню. В больших меню часто выносят контакты, панель быстрого доступа или вкладки с дополнительной информацией.

      CSS-стилизация раскрывающегося меню

      После HTML-разметки задайте базовые CSS-свойства для внешнего вида, position, display и поведения элементов. Родительскому элементу li обычно назначают position: relative, чтобы вложенный блок dropdown-content или список ul открывался точно по координате left: 0 относительно кнопки или ссылки.

      Сам раскрывающийся слой получает position: absolute, display: none, min-width или width, а также background-color, padding, margin: 0 и z-index, чтобы dropdown не прятался под другие элементы.

      .navbar .dropdown { position: relative; }
      
      .dropdown-content {
        position: absolute;
        left: 0;
        display: none;
        min-width: 220px;
        margin: 0;
        padding: 8px 0;
        background-color: #fff;
        z-index: 1000;
      }
      
      .dropdown:hover .dropdown-content { display: block; }
      
      .dropdown-content a {
        display: block;
        padding: 10px 16px;
        text-align: left;
        text-decoration: none;
      }

      На практике CSS для dropdown menu почти всегда строится вокруг нескольких ключевых правил: display: none для скрытого состояния, display: block для показа, position: absolute для выпадающего слоя и hover для сценария наведения. Если в шапке используется navbar, важно сразу проверить ширину блока, z-index и поведение рядом с соседними элементами. Так проще контролировать отображение, избежать конфликтов слоёв и сделать аккуратный dropdown при наведении. За счёт этого меню выглядит чище и не теряется на фоне других элементов интерфейса.

      Для более точной стилизации можно добавить border: 1px solid rgba(0,0,0,0.08);, настроить background, height активных строк и font-size для текста в списке. Если нужно выровнять внутренний контент, иногда помогает text-align: center для отдельного блока, хотя ссылки второго уровня чаще оставляют по левому краю.

      Такой подход делает чище, а изменения заметнее при наведении. Кроме того, удобно заранее продумать возможность быстрого выбора темы оформления, чтобы позже без лишней переделки изменить цвет, border и top-отступы под новый стиль сайта.

      JavaScript для раскрывающегося меню

      Если меню открывается только при hover, на смартфонах и планшетах такой сценарий работает не всегда удобно, поэтому JavaScript нужен для клика по button, переключения class и управления состоянием dropdown. Поэтому лучше добавить скрипт, который по клику на button переключает активное состояние, меняет значение aria-expanded и закрывает список, когда пользователь нажимает в другое место страницы.

      Дополнительно можно повесить закрытие на клавишу Escape. Такой подход делает навигацию стабильнее и помогает использовать дополнительные состояния без перегрузки интерфейса.

      const trigger = document.querySelector('.dropbtn');
      const panel = document.querySelector('.dropdown-content');
      
      trigger.addEventListener('click', () => {
        const isOpen = panel.classList.toggle('open');
        trigger.setAttribute('aria-expanded', String(isOpen));
      });
      
      document.addEventListener('click', (event) => {
        if (!event.target.closest('.dropdown')) {
          panel.classList.remove('open');
          trigger.setAttribute('aria-expanded', 'false');
        }
      });

      Дополнительно через JavaScript можно закрывать по клику вне блока, по нажатию Escape и при повторном нажатии на button. Это особенно полезно, если верхняя navbar содержит несколько выпадающих элементов и вложенные пункты списка. Добавьте в стили класс .open, установите для него видимое состояние и при желании настройте закрытие при прокрутке body.

      При необходимости функцию можно расширить: добавить обработку вкладки Tab, сценарий для повторного клика и отдельную логику для мобильного режима. Это особенно полезно, если меню содержит панель с быстрыми ссылками, блок контактов или сложный набор пунктов.

      Тогда JavaScript отвечает не только за открытие, но и за качество работы, поддержку разных устройств, удобство просмотра и корректное размещение активных элементов внутри страницы.

      Часто задаваемые вопросы

      Как создать меню с помощью CSS?

      Сначала соберите HTML-основу через nav, div, ul и li, затем создайте вложенный список для dropdown и задайте стили через CSS. Затем оформите родительский пункт через position: relative, а раскрывающийся блок через position: absolute, чтобы меню открывалось рядом с кнопкой или ссылкой.

      Скрытое состояние задайте как display: none, а видимое включайте отдельным классом или через :hover. Если нужен более аккуратный вид, добавьте border, мягкую тень через rgba и читабельный background для списка.

      Как настроить CSS отображение меню при наведении?

      Для этого обычно применяют селектор :hover к родительскому элементу li или к кнопке button, а вложенному блоку задают display: block. Когда курсор попадает в активную область, скрытый блок получает видимое состояние.

      Чтобы меню не дёргалось, заранее задайте отступы, границы, фон и удобную зону наведения. Дополнительно проверьте height строки, font-size текста и расстояние до верхней границы блока.

      Какие параметры CSS можно настроить в верхнем меню?

      Чаще всего меняют ширину блока, display, position, выравнивание, цвет текста, background-color, расстояние между пунктами списка, стиль кнопки и поведение dropdown при hover или клике. Дополнительно настраивают button, navbar, скорость анимации и поведение на телефонах.

      При необходимости верхнее menu можно дополнить JavaScript, чтобы раскрытие работало по клику, а не только при наведении. Также можно изменить element внутри списка, добавить вкладки, блок поддержки, ссылки на контакты и другие инструменты навигации.

      Источники

      • Baymard Institute — Homepage & Navigation UX Best Practices
      • MDN Web Docs — <nav>
      • MDN Web Docs — CSS position
      • MDN Web Docs — classList и addEventListener
      • WAI-ARIA Authoring Practices — Menu Button Pattern
      Автор:
      Аркадий Зверев
      Аркадий Зверев
      Генеральный директор
      Отвечает за развитие компании и работу с ключевыми партнерами. Профессиональный опыт включает разработку сайтов, SEO-продвижение и запуск digital-проектов.
      Акции
      до 1 декабря
      Скидка 7000 руб. на продвижение сайта в регионах
      Для получения скидки назовите кодовое слово «РЕГИОН».
      – 7000 рублей
      Отзывы
      ООО "Честный Агент"
      Ирина Мельник

      Наше дело – ритуальные услуги в Москве, где спрос отложенный и люди не планируют похороны заранее. Сайт долго был на низких позициях, трафик не шел. Cometa изменила структуру, переписала каталог и страницы под услуги – и за полтора...

      Подробнее
      «ДМ ЛОГИСТИК»
      Михаил Деревянко
      В короткий срок была построена сеть сайтов по России, ориентированных на доставку автомобилей по ЖД и автовозами. Сейчас это успешный и стабильный бизнес, совместно организованный с ноля. Таких компаний как "Комания Комета" очень ...
      Подробнее
      "Сильвер Паркет"
      Виталий Шматов
      С «Кометой» работаем более 12 лет. Ниша — дорогой художественный паркет и паркетная доска для частных домов и госучреждений. Агентство стабильно удерживает нас в топе Яндекса, регулярно дорабатывает сайт и расширяет структуру под ...
      Подробнее
      ООО "СпецДемонтаж"
      Виталий Романов
      Я, Виталий Романов, генеральный директор Спецдемонтажа, сотрудничаю с Кометой уже более 12 лет. Тематика демонтажа зданий в Москве непростая, но команда удерживает нас в топе по ключевым запросам. За эти годы несколько раз обновля...
      Подробнее
      Проекты
      Разработали сеть из 16 сайтов и получаем заявки из поиска Яндекс
      Разработка сайта для продажи бьюти-услуг
      Создали и продвинули сайт в поиске Яндекс и Google за 3 месяца
      Оптимизировали сайт и за месяц повысили ROI с 213% до 417%
      Статьи
      Поддержка сайтов
      Настройка стилей на сайте
      Разобрали настройку стилей на сайте на практических примерах: как подключать CSS, когда использовать внешний файл, тег style и инлайн-оформление, а также как стили влияют на скорость загрузки, Core Web Vitals и удобство работы с проектом.
      Сотрудники
      Генеральный директор
      Аркадий Зверев
      Генеральный директор
      Аркадий Зверев
      Телефон
      +7 495 118-37-73
      E-mail
      top@cometa.agency
      Написать сообщение
      Координатор проектов
      Егор Аникеев
      Координатор проектов
      Егор Аникеев
      Телефон
      +7 495 118-73-37
      E-mail
      manager@cometa.agency
      Контент менеджер
      Ольга Тимофеева
      Контент менеджер
      Ольга Тимофеева
      Менеджер SEO проектов
      Владимир Белоусов
      Менеджер SEO проектов
      Владимир Белоусов
      Телефон
      +7 495 118-37-73
      E-mail
      support@cometa.agency
      Написать сообщение
      Товары
      Тематики
      нет
      Региональность
      нет
      Конструктор посадочных страниц
      нет
      Подходящие редакции 1С-Битрикс
      «Бизнес», «Интернет-магазин + CRM», «Малый бизнес», «Стандарт», «Старт»
      Акция
      Рекомендуем
      Готовый сайт услуг
      Отраслевые сайты
      Готовый сайт услуг
      В наличии
      89 900 ₽
      Забронировать
      Тематики
      да
      Региональность
      да
      Конструктор посадочных страниц
      да
      Подходящие редакции 1С-Битрикс
      «Бизнес», «Интернет-магазин + CRM», «Малый бизнес», «Стандарт», «Старт»
      Акция
      Новинка
      Рекомендуем
      Медицинский центр 3.0
      Отраслевые сайты
      Медицинский центр 3.0
      В наличии
      89 900 ₽
      Забронировать
      Тематики
      нет
      Региональность
      да
      Конструктор посадочных страниц
      да
      Подходящие редакции 1С-Битрикс
      «Бизнес», «Интернет-магазин + CRM», «Малый бизнес», «Стандарт», «Старт»
      Хит
      Аспро: Корпоративный сайт 2.0
      Корпоративные сайты
      Аспро: Корпоративный сайт 2.0
      69 900 ₽
      Забронировать
      Тематики
      нет
      Региональность
      нет
      Конструктор посадочных страниц
      нет
      Подходящие редакции 1С-Битрикс
      «Бизнес», «Интернет-магазин + CRM», «Малый бизнес», «Стандарт», «Старт»
      Аспро: Корпоративный сайт современной компании
      Корпоративные сайты
      Аспро: Корпоративный сайт современной компании
      39 900 ₽
      Забронировать
      Назад к списку
      Контакты

      Оставьте заявку

      Перезвоним за 10 минут. Обсудим задачи, предложим оптимальное решение и согласуем план работ. Ответим на вопросы и расскажем про актуальные акции. Всегда на связи!

      Продукты
      Услуги
      Кейсы
      Тарифы
      Компания
      Контакты
      Вакансии
      Блог
      +7 495 118-37-73
      +7 495 118-37-73
      Заказать звонок
      E-mail
      support@cometa.agency
      Адрес
      г. Москва, пр. Серебрякова, 14, стр. 1
      Режим работы
      Пн. – Пт.: с 9:00 до 18:00
      Заказать звонок
      support@cometa.agency
      © 2026 ООО "Компания Комета" ОГРН: 1086910001364
      Акредитованная IT компания. Запись в реестре № АО-20220621-5597705016-3
      129343, Москва, Серебрякова пр-д, дом 14/15
      Согласие на обработку персональных данных
      Политика защиты и обработки персональных данных ООО «Компания Комета»
      Политика конфиденциальности
      Версия для слабовидящих
      Поиск по сайту

      УВЕДОМЛЕНИЕ о сборе cookies – файлов

      Общество с ограниченной ответственностью «Компания Комета», ИНН: 6926002800, ОГРН: 1086910001364, адрес места нахождения: 171470, РОССИЯ, обл ТВЕРСКАЯ, пгт КЕСОВА ГОРА, ул МОСКОВСКАЯ, ДОМ 11, офис КВ.8, обрабатывает файлы cookies.

      Они помогают нам делать этот сайт удобнее для пользователей.

      Продолжая работу с сайтом: cometa.agency, вы соглашаетесь с обработкой файлов cookies вашего браузера.

      Однако вы можете запретить обработку некоторых типов файлов cookies в настройках вашего браузера либо на странице «Уведомление об использовании файлов cookies».