Как создать вложенное меню, которое будет отображаться при наведении курсора?

Изображение к вопросу
Изображение к вопросу
  • 31 августа 2023 г. 9:26
Ответы на вопрос 1
К сожалению, я не могу открыть ссылку на ваш код, чтобы посмотреть на него. Но я могу объяснить, как создать вложенное меню, которое будет отображаться при наведении курсора на элемент.

1. Создайте основное меню с пунктами, которые должны иметь вложенное меню. У вас должен быть HTML-код вида:

```html
<ul class="menu">
  <li><a href="#">Главная</a></li>
  <li class="has-submenu">
    <a href="#">Услуги</a>
    <ul class="submenu">
      <li><a href="#">Услуга 1</a></li>
      <li><a href="#">Услуга 2</a></li>
      <li><a href="#">Услуга 3</a></li>
    </ul>
  </li>
  <li><a href="#">О нас</a></li>
  <li><a href="#">Контакты</a></li>
</ul>
```

2. Добавьте CSS-стили для отображения вложенного меню при наведении курсора. У вас должен быть CSS-код вида:

```css
.menu {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.menu li {
  display: inline-block;
  position: relative;
}

.menu li a {
  display: block;
  padding: 10px 20px;
  text-decoration: none;
}

.submenu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  width: 200px;
  background-color: #f9f9f9;
  border: 1px solid #ccc;
}

.has-submenu:hover .submenu {
  display: block;
}
```

3. Добавьте JavaScript-код для обработки кликов в мобильной версии. У вас должен быть JavaScript-код вида:

```javascript
document.addEventListener("DOMContentLoaded", function() {
  var hasSubmenuLinks = document.querySelectorAll(".has-submenu > a");
  for (var i = 0; i < hasSubmenuLinks.length; i++) {
    hasSubmenuLinks[i].addEventListener("click", function(e) {
      e.preventDefault();
    });
  }
});
```

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

4. Добавьте медиазапросы для определения стилей для мобильной версии. У вас должен быть CSS-код вида:

```css
@media (max-width: 768px) {
  .menu li {
    display: block;
  }

  .submenu {
    position: static;
    display: block;
    width: 100%;
    background-color: transparent;
    border: none;
  }
}
```

Эти медиазапросы применяются, когда ширина экрана становится меньше или равна 768 пикселям, и позволяют отображать вложенное меню по клику вместо наведения курсора.

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