Если вы просто хотите отображать и скрывать раскрывающееся меню при наведении курсора мыши, вам не нужен JavaScript. Вы можете сделать это, просто используя CSS-свойство display и псевдокласс :hover.

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

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Show Hide Dropdown Using CSS</title>
<style>
    ul{
        padding: 0;
        list-style: none;
        background: #f2f2f2;
    }
    ul li{
        display: inline-block;
        position: relative;
        line-height: 21px;
        text-align: left;
    }
    ul li a{
        display: block;
        padding: 8px 25px;
        color: #333;
        text-decoration: none;
    }
    ul li a:hover{
        color: #fff;
        background: #939393;
    }
    ul li ul.dropdown{
        min-width: 100%; /* Устанавливаем ширину раскрывающегося списка */
        background: #f2f2f2;
        display: none;
        position: absolute;
        z-index: 999;
        left: 0;
    }
    ul li:hover ul.dropdown{
        display: block; /* Отображаем раскрывающийся список */
    }
    ul li ul.dropdown li{
        display: block;
    }
</style>
</head>
<body>
    <ul>
        <li><a href="#">Главная</a></li>
        <li><a href="#">О нас</a></li>
        <li>
            <a href="#">Каталог &#9662;</a>
            <ul class="dropdown">
                <li><a href="#">Ноутбуки</a></li>
                <li><a href="#">Мониторы</a></li>
                <li><a href="#">Принтеры</a></li>
            </ul>
        </li>
        <li><a href="#">Контакты</a></li>
    </ul>
</body>
</html>

И с семантической и практической точки зрения это не самое удачное решение.

Во-первых, пользователь захочет кликнуть по ссылке Каталог и вам нужно запретить переход по ней используя event.preventDefault();. А во вторых пользователи, зашедшие с мобильного устройства не смогут воспользоваться функцией наведения и, как следствие, у них не откроется дополнительное меню.

Лучший выход в этой ситуации — добавить для нужного элемента <li> дополнительный элемент, например <span class="caret"> и с помощью JavaScript добавить поведение клика и наведения для этого элемента.

Читайте также

Похожие посты

Как определить или создать таблицу стилей только для Internet Explorer

Поддержка старых версий IE — головная боль для разработчиков сайтов. В большинстве случаев вы не сможете избежать этого из-за требований проекта или из-за того, что ваш клиент все еще использует старую версию Internet Explorer. Каждая версия IE ведет себя несколько иначе, чем другие. Первое, что нам нужно, это определить отдельные таблицы стилей для разных версий…

Как отключить выделение выделения текста в браузерах с помощью CSS

По умолчанию, когда вы выделяете текст в браузере, он обычно выделяется синим цветом. Но вы можете отключить это выделение с помощью псевдоэлемента CSS ::selection. В настоящее время браузеры поддерживают только небольшое подмножество CSS-свойств для псевдоэлемента ::selection, например color, background-color и text-shadow. Вот пример:

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.