Как сделать адаптивное меню без скриптов (инструкция)

Чаще всего при разработке раскрывающегося мобильного меню применяют пару строк js-кода, который реагирует на клик (равно касание) по кнопке, отвечающей за раскрытие меню. После касания, как правило, скрипт заменяет или добавляет класс к элементам меню, применяя тем самым нужные стили.

В примере ниже, я покажу, как создавать подобные меню без использования js. На чистом html+css.

Итак. Начнем с html-кода меню. Оно должно быть таким

<label class="open-toggle-menu" for="toggle-menu">
<i class="genericon genericon-menu">Раскрыть меню</i>
</label>
<input id="toggle-menu" type="checkbox" />
<nav class="nav">
<ul class="topmenu">
<li><a href="/">Первый пункт меню</a></li>
<li><a href="/">Второй пункт меню</a></li>
</ul>
</nav>

Как вы наверное догадались — вся магия будет на чекбосах. Т.е мы связали поля input и label между собой. Далее логика будет такой. Если чекбос отмечен — показываем меню. Если галочка не стоит — скрываем меню.

Разумеется, что сам чекбокс нам не нужно показывать юзеру, поэтому мы скроем его через display:none; Иными словами css у нас будет такого типа:

#toggle-menu {display: none;} /* скрываем сам чекбокс */
.nav {visibility: hidden; display: none;} /* предварительно меню свернуто */
/* показываем меню, если нажали на кнопку, отметили чекбокс */
#toggle-menu:checked + .nav {display: block; visibility: visible;}

Я умышленно привел так мало кода, чтобы ничего не отвлекало. Все остальные плюшки созданные посредством css — служат лишь оформлением.

Рейтинг: 5

2022-07-01 / / 0 комментариев / Про кодинг и сервер / ,