Перейти к основному содержимому

Выпадающие меню CSS

Выпадающее меню CSS показывает список опций или другое содержимое, когда пользователь щёлкает по элементу или наводит на него курсор, например на кнопку или ссылку навигации.

Работает оно благодаря двум частям. Первая — элемент-триггер (например, <div>, <button>, <p>, <a> и т.д.), то, по чему пользователь щёлкает или на что наводит курсор.

Вторая — содержимое выпадающего меню: элемент-контейнер (например, <div>), в котором скрыты материалы, это могут быть текст, ссылки, изображения и т.д., пока триггер их не покажет.


Выпадающий блок CSS с текстом

В этом первом варианте при наведении курсора на элемент <div> появляется выпадающий блок с текстом.

Выпадающий блок с текстом

Prompt
Создайте выпадающий блок CSS с текстовым содержимым. Используйте контейнер div с классом "dropdown", содержащий текст "Mouse over me!" в качестве триггера. Внутри него разместите скрытый div с классом "dropdown-content", содержащий текст "Hello World!". Контейнер выпадающего блока должен использовать position: relative. Содержимое должно быть скрыто по умолчанию (display: none), использовать position: absolute, иметь светло-серый фон (#f9f9f9), минимальную ширину 130px, box-shadow 0px 8px 16px 0px rgba(0,0,0,0.2) и отступ 12px 16px. При наведении на контейнер содержимое должно становиться видимым (display: block).
Результат: полная HTML-страница

Объяснение примера

  • Чтобы содержимое выпадающего меню, использующее position:absolute, оказалось прямо под элементом-триггером, классу .dropdown нужно position:relative.
  • Содержимое выпадающего меню находится в классе .dropdown-content; по умолчанию оно скрыто, пока наведение его не покажет.
  • Здесь задан min-width 130px, и вы можете свободно его менять! Чтобы ширина совпадала с шириной элемента-триггера, используйте width 100% и overflow:auto, чтобы на маленьких экранах работала прокрутка.
  • Вид «карточки» содержимому выпадающего меню придаёт свойство box-shadow, которое используется вместо границы.
  • Наконец, селектор :hover показывает содержимое выпадающего меню, когда пользователь наводит курсор на элемент <div> выпадающего меню.

Выпадающее меню CSS

Выпадающее меню позволяет пользователю выбрать одну опцию из списка.

Оно основано на предыдущем примере, а единственное отличие — кнопка и ссылки в выпадающем блоке, оформленные в соответствии с кнопкой выпадающего меню.

Выпадающее меню с кнопкой

Prompt
Создайте выпадающее меню CSS с кнопкой-триггером. Используйте контейнер div с классом "dropdown" (position: relative). Внутри него разместите кнопку с классом "dropbtn" с надписью "Dropdown Menu", оформленную зелёным фоном (#4CAF50), белым текстом, отступом 16px, размером шрифта 16px, без границы и с курсором-указателем. Под кнопкой добавьте скрытый div с классом "dropdown-content" (display: none, position: absolute, background-color: #f9f9f9, min-width: 200px, box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2)), содержащий три ссылки: "Link 1", "Link 2" и "Link 3". Оформите ссылки чёрным цветом, отступом 12px 16px, без text-decoration и с display: block. При наведении на ссылку применяйте светло-серый фон (#f1f1f1). При наведении на контейнер выпадающего меню показывайте содержимое (display: block) и меняйте фон кнопки на более тёмный зелёный (#3e8e41).
Результат: полная HTML-страница