jivo banner 468x60jivo banner 728x90jivo banner 930x180flexbe banner 468x60flexbe banner 728x90flexbe banner 930x180etxt banner 468x60etxt banner 728x90etxt banner 930x180

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

Если вы просто хотите отображать и скрывать раскрывающееся меню при наведении курсора мыши, вам не нужен 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 добавить поведение клика и наведения для этого элемента.

smsc banner 480x320smsc banner 728x90smsc banner 120x600kwork banner 480x320kwork banner 728x90kwork banner 120x600skillbox banner 480x320skillbox banner 728x90skillbox banner 120x600

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

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

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

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

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

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

Как добавить CSS стили к элементу с дата атрибутом в HTML

Чтобы добавить CSS к <div> с определённым data атрибутом, можно использовать селектор атрибутов в вашем CSS-файле. Вот как это сделать: Объяснение Пример Вот пример, который добавляет стили к вашему <div>: В этом примере <div> с атрибутом data-container=»outer» будет иметь светло-серый фон, рамку и отступы. Текст внутри <div> будет выровнен по центру.
Подробнее

Как анимировать фоновый цвет элемента при наведении курсора мыши с помощью CSS

Вы можете использовать CSS-свойство transition, чтобы плавно анимировать background-color элемента при наведении курсора мыши. Давайте посмотрим пример, чтобы понять, как это работает:
Подробнее