ГлавнаяСтатьиWebFAQОбучениеКонтакты
Web
CSS
JavaScript
HTML
C#
jQuery
PHP
Flash
Yii / Yii2
Java
Net
CMS
3D
Parallax
MySQL
Ajax
XML
SEO
FTP
JSON
Design
Python
Back-end
Front-end
ASP
Perl
Template
Domain
Hosting
Plugin
Browser
DNS
SVG
Effect
Опрос
Какой язык программирования вы используете для написания сайта?








Авторизация
Логин:
Пароль:

Выпадающее меню на HTML и CSS без использования JavaScript

Опубликовано 20.03.2019

Очень часто на сайте необходимо сделать раскрывающееся меню при наведении мыши. Большинство веб-разработчиков используют для этого JavaScript и библиотеку jQuery. Однако такая задача легко решается с помощью HTML и CSS.

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

<ul class="menu">
  <li><a href=#>Menu 1</a>
    <ul class="submenu">
      <li><a href=#>Sudmenu 1</a></li>
      <li><a href=#>Sudmenu 1</a></li>
      <li><a href=#>Sudmenu 1</a></li>
    </ul>
  </li>
  <li><a href=#>Menu 2</a>
    <ul class="submenu">
      <li><a href=#>Sudmenu 2</a></li>
      <li><a href=#>Sudmenu 2</a></li>
      <li><a href=#>Sudmenu 2</a></li>
    </ul>
  </li>
  <li><a href=#>Menu 3</a>
    <ul class="submenu">
      <li><a href=#>Sudmenu 3</a></li>
      <li><a href=#>Sudmenu 3</a></li>
      <li><a href=#>Sudmenu 3</a></li>
    </ul>
  </li>
  <li><a href=#>Menu 4</a>
    <ul class="submenu">
      <li><a href=#>Sudmenu 4</a></li>
      <li><a href=#>Sudmenu 4</a></li>
      <li><a href=#>Sudmenu 4</a></li>
    </ul>
  </li>
  <li><a href=#>Menu 5</a>
    <ul class="submenu">
      <li><a href=#>Sudmenu 5</a></li>
      <li><a href=#>Sudmenu 5</a></li>
      <li><a href=#>Sudmenu 5</a></li>
    </ul>
  </li>
</ul>

Для построения меню был используется список <ul> с классом menu. Подменю сделаны списками <ul> с классом submenu.

Применим к нашему меню следующие стили:

body {
  font: 14px 'Verdana';
  margin: 0;
  padding: 0;
}
ul {
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
}
ul:after {
  display: block;
  content: ' ';
  clear: both;
  float: none;
}
ul.menu > li {
  float: left;
  position: relative;
}
ul.menu > li > a {
  display: block;
  padding: 10px;
  color: #ffffff;
  background-color: #808080;
  text-decoration: none;
}
ul.menu > li > a:hover {
  background-color: #505050;
}
ul.submenu {
  display: none;
  position: absolute;
  width: 120px;
  top: 37px;
  left: 0;
  background-color: white;
  border: 1px solid #505050;
}
ul.submenu > li {
  display: block;
}
ul.submenu > li > a {
  display: block;
  padding: 10px;
  color: white;
  background-color: #808080;
  text-decoration: none;
}
ul.submenu > li > a:hover {
  text-decoration: underline;
}

Обратите внимание на то что для класса submenu по умолчанию установлено свойство "display: none", что позволяет скрывать выпадающее меню.

Чтобы при наведении мыши выпадало подменю добавим в CSS такой код:

ul.menu > li:hover > ul.submenu {
  display: block;
}

Теперь наше меню работает просто и легко без технологий JavaScript