Автор

29 03.2016
Многоуровневое выпадающее меню на CSS3

Многоуровневое выпадающее меню на CSS3


В сегодняшнем уроке мы рассмотрим замечательный прием, который поможет сохранить место у вас на сайте, а именно многоуровневое выпадающее меню, которое позволит сэкономить много на сайте, при этом пользователю интуитивно понятно, что следует за дочерним элементом. Благодаря такой навигации вы можете сократить количество отображаемой информации на сайте при этом качественно ее оформить. Данный пример разработан исключительно средствами CSS. Так же мы добавили и версию с применением jQuery.

 

ДЕМО
ИСХОДНИКИ

 

Чтобы получить такую функцию мы использовали несколько знакомых Вам, с уроков ранее, а именно псевдо-класс :checked. И так, давайте приступим.

 

HTML

HTML структура довольно-таки проста: аккордеон представляет собой ненумерованный список. Если у элемента есть вложенность, то мы добавляем input[type=checkbox] и название. Так же присваиваем этому элементу класс .has-children. Все “стандартные” элементы списка содержат ccылки:

<ul class="cd-accordion-menu animated">
<li class="has-children">
<input type="checkbox" name ="group-1" id="group-1" checked>
<label for="group-1">Главная</label>

<ul>
<li class="has-children">
<input type="checkbox" name ="sub-group-1" id="sub-group-1">
<label for="sub-group-1">Уроки</label>

<ul>
<li><a href="#0">Новые</a></li>
<li><a href="#0">Старые</a></li>
<li><a href="#0">Популярные</a></li>
</ul>
</li>
<li class="has-children">
<input type="checkbox" name ="sub-group-2" id="sub-group-2">
<label for="sub-group-2">Контакты</label>

<ul>
<li class="has-children">
<input type="checkbox" name ="sub-group-level-3" id="sub-group-level-3">
<label for="sub-group-level-3">Интересно</label>

<ul>
<li><a href="#0">Как сделать</a></li>
<li><a href="#0">Подробно</a></li>
</ul>
</li>
<li><a href="#0">Разработка</a></li>
</ul>
</li>
<li><a href="#0">Веб-дизайн</a></li>
<li><a href="#0">Вопросы</a></li>
</ul>
</li>

Для отслеживания выборки элемента мы используем специальную технику: используя элемент checkbox, мы сможем воспользоваться псевдо-классом :checked и сменить отображение потомков с none на block.

 

CSS

Теперь нам нужно настроить checkbox под себя. Во-первых, при клике по label, checkbox должен заполняться или очищаться. Для этого мы используем атрибут for элемента label (атрибут label for = атрибуты input name и “id”). Таким образом мы можем спрятать элемент input и работать с label.

.cd-accordion-menu input[type=checkbox] {
position: absolute;
opacity: 0;
}
.cd-accordion-menu label, .cd-accordion-menu a {
position: relative;
display: block;
padding: 18px 18px 18px 64px;
background: #4d5158;
box-shadow: inset 0 -1px #555960;
color: #ffffff;
font-size: 1.6rem;
}

Теперь обратите внимание на HTML: input, label и ненумерованный список - соседи. При клике checkbox, извлекается ul элемент и меняется режим отображения с none на block:

.cd-accordion-menu ul {
display: none;
}

.cd-accordion-menu input[type=checkbox]:checked + label + ul,
.cd-accordion-menu input[type=checkbox]:checked + label:nth-of-type(n) + ul {
display: block;
}

Если вы хотите добавить анимацию, то подключите.js файл. После этого добавьте класс .animate элементу .cd-accordion-menu (смена направления стрелок).

 

Вот и все. Готово!


vk.com/club.ssdru

Подписывайтесь на нашу группу в контакте vk.com/club.ssdru


Статьи по темеCSS3

05 04.2013
Многоуровневое выпадающее меню на CSS3

Мы же не раз писали о практичности аккордеонов на сайте, которые позволяют экономить место на ресурсе, тем самим не загружать визуально информацией пользователей. Это весьма практично в наши дни, ведь хороший веб-дизайн сейчас цениться среди посетителей, привлекает внимание и вызывает дальнейший интерес к ресурсу. В данном уроке мы рассмотрим как создать замечательный аккордеон для сайта с контентом при помощи только css. Данный аккордеон отлично будет сочетаться на ресурсе в темных тонах. Вот что с этого получилось..


23 04.2013
Многоуровневое выпадающее меню на CSS3

Галерея всегда отыгрывает весомую роль в дизайне портфолио или фотосайта. Но каждый веб-мастер хочет уникально оформить свой ресурс придав ему эксклюзивности в дизайне. В данном уроке мы рассмотрим процесс создания замечательной карусель-галереи с помощью JQuery.  Эта галерея очень проста и в то же время эффектная. Такую мини галерею на JQuery можно применить у себя на сайте или блоге, для показа последних постов или фото – работ, вообще, где бы Вы ее не применили, она всегда впишется просто замечательно. Вот что у нас с этого получилось..


16 10.2015
Многоуровневое выпадающее меню на CSS3

Генератор бэкграунда для сайта позволяет вам разрабатывать собственные изображения используя треугольники и цветные градиенты. Вы можете настраивать ширину и высоту финального изображения, а также вариации и формы треугольников, размеры ячеек и цветовую палитру. Пользуйтесь :)


29 09.2014
Многоуровневое выпадающее меню на CSS3

Крупные заголовки сайта стали весьма популярны, эта тенденция развивается достаточно быстро на рынке веб-дизайна, сегодня мы бы хотели предоставить коллекцию анимированных фоновых заголовков для вашего вдохновения. Мы будем использовать Canvas и Javascript, чтобы создать анимированный фон для крупных заголовков.


105 Публикаций

Раскрутка в соцсетях

В данном блоге описано где и как сделать накрутку групп, сообществ и личных страничек в популярных социальных сетях и тест платных сайтов занимающихся накруткой.


Перейти в Блог

О КОМПАНИИ

Studio Design существует с 2001 года. Основной нашей деятельностью до 2007 года было видеопроизводство ( видеореклама и документальные фильмы, о чем подробно описано в нашем блоге ). С 2007 года, вот уже как лет, наша основная специфика - это создание сайтов для бизнеса или частной деятельности, веб дизайн, а также поддержка и администрирование готовых проектов. Каждая выполненная нами работа - это уникальный, а самое главное, адаптивный под все современные мобильные устройства дизайн сайта. Мы готовы создать сайт с нуля для каждого клиента с любого уголка России! Мы поможем Вам в создании, как одностраничных сайтов – визиток, так и крупных интернет магазинов или корпоративных сайтов. А все наши работы, большинство из которых действуют и по сей день!

Close

Целовальников Сергей


Веб-дизайн, HTML5, CSS3, jQuery, JavaScript, Верстка.

Верстальщик с большим опытом работы. Занимаюсь созданием сайтов с 2005 года. Постоянно обучаюсь и совершенствую свои навыки. Веду свои проекты, в том числе и данный блог.

Close