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

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

В статье мы рассмотрим простой способ создания раскрывающегося меню с использованием элементов HTML и CSS. Будем использовать для этого элементы списка (

    ) и ссылки () с простыми стилями CSS.

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

    Что такое раскрывающееся меню и зачем оно нужно

    Зачем нужно использовать раскрывающееся меню? Оно особенно полезно для сайтов с большим количеством информации или разделов. Раскрывающееся меню позволяет скрыть изначально ненужное содержимое, сделать сайт более аккуратным и упорядоченным. Кроме того, благодаря раскрывающемуся меню пользователи смогут найти нужную информацию быстрее, так как им необходимо только нажать на соответствующий пункт меню, чтобы получить доступ к содержимому.

    Раскрывающиеся меню также являются важным элементом респонсивного дизайна. Они позволяют эффективно использовать пространство на мобильных устройствах и делают навигацию по сайту удобной, независимо от размера экрана.

    Простой способ создания раскрывающегося меню

    Создание раскрывающегося меню в HTML может показаться сложной задачей, но на самом деле существует простой способ сделать это с помощью HTML и CSS. Для начала, нужно использовать список ul и li для создания структуры меню. Затем, с помощью CSS можно добавить стили, чтобы скрыть подменю и показывать его по клику или наведению курсора.

    Вот пример простого HTML кода для создания раскрывающегося меню:

    
    <ul class="menu">
    <li>Главная</li>
    <li>О нас
    <ul class="sub-menu">
    <li>История</li>
    <li>Команда</li>
    <li>Контакты</li>
    </ul>
    </li>
    <li>Услуги</li>
    <li>Контакты</li>
    </ul>
    

    Затем, нужно добавить CSS стили для меню и подменю:

    
    .menu {
    list-style-type: none;
    margin: 0;
    padding: 0;
    }
    .menu li {
    position: relative;
    display: inline-block;
    }
    .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    }
    .menu li:hover .sub-menu {
    display: block;
    }
    

    В этом примере при наведении курсора на пункт меню «О нас», подменю будет показываться. При наведении на другие пункты меню, подменю останется скрытым. Чтобы меню раскрывалось по клику, можно использовать JavaScript.

    Таким образом, с помощью простого HTML и CSS можно создать раскрывающееся меню и добавить интерактивность к сайту.

    Использование тегов details и summary

    Тег details используется как контейнер для содержимого, которое будет раскрываться. Вложенный тег summary используется для создания заголовка или кнопки, по которой пользователь будет нажимать, чтобы открыть или закрыть содержимое.

    Пример кода:

    
    <details>
    <summary>Нажмите, чтобы раскрыть меню</summary>
    <p>Содержимое меню</p>
    </details>
    
    

    В данном примере при загрузке страницы пользователю будет показано только заголовок «Нажмите, чтобы раскрыть меню». При нажатии на заголовок или кнопку, содержимое будет раскрыто, и пользователь увидит текст «Содержимое меню». При повторном нажатии содержимое будет закрыто.

    Теги details и summary предоставляют простую и удобную возможность создания раскрывающегося меню в HTML без использования JavaScript или CSS.

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

    Ниже приведены несколько примеров кода для создания раскрывающегося меню в HTML:

    1. Простое меню с использованием списков:

    
    <ul>
    <li><a href="#">Пункт меню 1</a></li>
    <li><a href="#">Пункт меню 2</a></li>
    <li><a href="#">Пункт меню 3</a></li>
    </ul>
    
    

    2. Раскрывающееся меню с помощью JavaScript:

    
    <button onclick="myFunction()">Показать меню</button>
    <div id="myDropdown" class="dropdown-content">
    <a href="#">Пункт меню 1</a>
    <a href="#">Пункт меню 2</a>
    <a href="#">Пункт меню 3</a>
    </div>
    <script>
    function myFunction() {
    document.getElementById("myDropdown").classList.toggle("show");
    }
    window.onclick = function(event) {
    if (!event.target.matches('.dropdown-content')) {
    var dropdowns = document.getElementsByClassName("dropdown-content");
    for (var i = 0; i < dropdowns.length; i++) {
    var openDropdown = dropdowns[i];
    if (openDropdown.classList.contains('show')) {
    openDropdown.classList.remove('show');
    }
    }
    }
    }
    </script>
    
    

    3. Раскрывающееся меню с использованием CSS:

    
    <div class="dropdown">
    <button class="dropbtn">Показать меню</button>
    <div class="dropdown-content">
    <a href="#">Пункт меню 1</a>
    <a href="#">Пункт меню 2</a>
    <a href="#">Пункт меню 3</a>
    </div>
    </div>
    <style>
    .dropdown {
    position: relative;
    display: inline-block;
    }
    .dropbtn {
    background-color: #ffffff;
    color: #000000;
    padding: 10px;
    font-size: 16px;
    border: none;
    cursor: pointer;
    }
    .dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    z-index: 1;
    }
    .dropdown-content a {
    color: #000000;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
    }
    .dropdown:hover .dropdown-content {
    display: block;
    }
    </style>
    
    

    Выше приведены лишь некоторые примеры кода для создания раскрывающегося меню в HTML. Вы можете использовать эти примеры как отправную точку и настраивать их под свои нужды.

    Пример 1: Раскрывающееся меню с использованием CSS

    <style>
    /* Скрытый контент меню */
    .hidden-content {
    display: none;
    }
    /* Кнопка меню */
    .menu-button {
    cursor: pointer;
    }
    </style>
    <p><strong>HTML код:</strong></p>
    <p>
    <!-- Кнопка меню -->
    <p class="menu-button">Меню</p>
    <!-- Скрытый контент меню -->
    <p class="hidden-content">Содержимое меню</p>
    </p>
    

    Чтобы создать такое меню, сначала нам нужно добавить класс "hidden-content" к элементу, который мы хотим скрыть. Затем мы используем класс "menu-button" для кнопки меню, которая будет отображаться по умолчанию. Стилизуя классы "hidden-content" и "menu-button" в CSS, мы можем определить, как будет выглядеть скрытый контент и кнопка меню. В CSS мы также добавляем стили для курсора указателя на кнопке меню, чтобы пользователи могли понять, что она является интерактивной.

    Затем мы добавляем JavaScript-код, чтобы добавить функциональность, позволяющую отображать и скрывать содержимое меню при клике на кнопку меню. Вот пример такого кода:

    <script>
    // Находим элементы кнопки меню и скрытого контента
    var menuButton = document.querySelector('.menu-button');
    var hiddenContent = document.querySelector('.hidden-content');
    // Добавляем обработчик события клика на кнопку меню
    menuButton.addEventListener('click', function() {
    if (hiddenContent.style.display === 'none') {
    hiddenContent.style.display = 'block';
    } else {
    hiddenContent.style.display = 'none';
    }
    });
    </script>
    

    В данном примере мы используем метод querySelector(), чтобы найти элементы кнопки меню и скрытого контента по классам. Затем мы добавляем обработчик события клика на кнопку меню, который проверяет текущее значение свойства display у скрытого контента. Если оно равно 'none', значит, контент скрыт, и мы изменяем его свойство display на 'block', чтобы отобразить его. Если свойство уже установлено как 'block', то мы изменяем его на 'none', чтобы скрыть контент. Таким образом, мы создаем эффект раскрывающегося меню.

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

    Пример 2: Раскрывающееся меню с использованием JavaScript

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

    Ниже приведен пример кода:

    <html>
    <head>
    <script>
    function toggleMenu() {
    var menu = document.getElementById("menu");
    if (menu.style.display === "none") {
    menu.style.display = "block";
    } else {
    menu.style.display = "none";
    }
    }
    </script>
    </head>
    <body>
    <button onclick="toggleMenu()">Показать меню</button>
    <ul id="menu" style="display: none;">
    <li><a href="#">Пункт 1</a></li>
    <li><a href="#">Пункт 2</a></li>
    <li><a href="#">Пункт 3</a></li>
    </ul>
    </body>
    </html>

    В этом примере мы добавляем кнопку "Показать меню" и элемент списка "menu" с помощью тега <ul>. Кнопка вызывает функцию "toggleMenu()", которая использует свойство "display" для скрытия или отображения элемента "menu". При первом нажатии на кнопку меню отображается, а при следующем нажатии скрывается.

    Вы можете изменить содержимое меню, добавить новые элементы или стилизовать его с помощью CSS, чтобы удовлетворить своим потребностям.

    Оцените статью