Как сделать выпадающее меню в html

Аватар пользователя Aleksey
Aleksey
06 апреля 2023

Рассмотрим простой стандартный способ создания выпадающего меню в HTML с использованием элемента <select> и <option>:

<select>
  <option value="value1">Option 1</option>
  <option value="value2">Option 2</option>
  <option value="value3">Option 3</option>
</select>

Этот код создаст выпадающий список с тремя опциями: "Option 1", "Option 2" и "Option 3". Каждая опция будет иметь значение, указанное в атрибуте value.

Чтобы обработать изменение выбранной опции, можно использовать атрибут onChange элемента <select> и добавить JavaScript-обработчик события. Например:

<select onChange="myFunction()">
  <option value="value1">Option 1</option>
  <option value="value2">Option 2</option>
  <option value="value3">Option 3</option>
</select>

<script>
  function myFunction() {
    var selectedValue = document.querySelector('select').value;
    console.log(selectedValue);
  }
</script>

В этом примере при выборе опции вызывается функция myFunction(), которая выводит значение выбранной опции в консоль.

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

select option:checked {
  background-color: #007bff;
  color: #fff;
}

Этот код изменит фон выбранной опции на синий цвет и цвет текста на белый.

0 0

Выпадающий меню можно через абсолютное позиционирование. HTML код выглядит так:

<nav class="nav">
        <ul>
          <li>
            <span class="nav-title">Проекты</span>
            <ul class="sub-menu">
              <li><a href="#">Обзор и отзывы</a></li>
              <li><a href="#">Что такое проекты?</a></li>
              <li><a href="#">Как подготовиться?</a></li>
            </ul>
          </li>
        </ul>
</nav>

CSS код будет выглядеть так:

.nav li {
  position: relative;
}

.sub-menu {
  display: none; 
  position: absolute;
  left: 0; /*Данное указание не обязательно*/
}

.nav li:hover > .sub-menu {
  display: block;
  width: max-content;
}

Как выглядит

enter image description here

0 0

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

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

Курсы по программированию в Хекслете

Программирование

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

Тест-драйв

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки

Бесплатные курсы

Бесплатные курсы по тестированию, дата-аналитике, верстке, программированию на Python, Java, PHP и JavaScript.

Похожие вопросы