Главная > Меню и Навигация > Разрабатываем гармошку с контентом на чистом CSS3

Разрабатываем гармошку с контентом на чистом CSS3


27 июня 2012, 11:55. Разместил: Design FactoRy
В нашем сегодняшнем руководстве мы хотим научить вас созданию гармошки с контентом на чистом коде CSS3, основанную на Futurico UI Pro от Владимира Кудинова. Наш пример будет работать только на тех устройствах и в тех браузерах, где имеется поддержка селектора :target.

Разрабатываем гармошку с контентом на чистом CSS3

Сложность: средняя Необходимое время: 45 минут

Этап 1 – Основная HTML-разметка

Давайте создадим 3 div’а с разными id, и в каждом div’е расположим ссылку с классом tab, и div с классом content.

Для того чтобы иметь возможность оформить и открыть гармошку при произведении по ней клика, нам потребуется селектор :target. Этот селектор будет работать только в том случае, если у нас будет ссылка, ведущая на id, и при клике по этой ссылке id будет становиться целевым элементом.

<div class="accordion">
<div id="tab-1">
<a href="#tab-1" class="tab">Option One</a>
<div class="content">
Content Here
</div>
</div>
<div id="tab-2">
<a href="#tab-2" class="tab">Option Two</a>
<div class="content">
Content Here
</div>
</div>
<div id="tab-3">
<a href="#tab-3" class="tab">Option Three</a>
<div class="content">
Content Here
</div>
</div>
</div>

Разрабатываем гармошку с контентом на чистом CSS3

Этап 2 – Основная разметка гармошки

Начнем с того, что сбросим некоторые CSS-стили для того, чтобы исключить поля, отступы и границы.

.accordion,.accordion div,.accordion h1,.accordion p,.accordion a,.accordion img,.accordion span,.accordion em,.accordion ul,.accordion li {
margin: 0;
padding: 0;
border: none;
}

Затем мы зададим фиксированную ширину в 300 пикселей (290 пикселей + 5 пикселей левого поля + 5 пикселей правого поля), цвет фона, закругленные углы и немного теней.

.accordion {
width: 290px;
padding: 1px 5px 5px 5px;
background: #141517;

-webkit-box-shadow: 0px 1px 0px rgba(255,255,255, .05);
-moz-box-shadow: 0px 1px 0px rgba(255,255,255, .05);
box-shadow: 0px 1px 0px rgba(255,255,255, .05);

-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
}

Разрабатываем гармошку с контентом на чистом CSS3

Этап 3 – Оформляем шапку вкладки

Теперь давайте оформим шапку исходной вкладки посредством CSS3-градаций, теней, закругленных углов и некоторых основных CSS-параметров (шрифт, отступы, цвета и так далее).

.accordion .tab {
display: block;
height: 35px;
margin-top: 4px;
padding-left: 20px;
font: bold 12px/35px Arial, sans-serif;
text-decoration: none;
color: #eee;

text-shadow: 1px 1px 0px rgba(0,0,0, .2);

-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;

background: #6c6e74;
background: -moz-linear-gradient(top, #6c6e74 0%, #4b4d51 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#6c6e74), color-stop(100%,#4b4d51));
background: -webkit-linear-gradient(top, #6c6e74 0%,#4b4d51 100%);
background: -o-linear-gradient(top, #6c6e74 0%,#4b4d51 100%);
background: -ms-linear-gradient(top, #6c6e74 0%,#4b4d51 100%);
background: linear-gradient(top, #6c6e74 0%,#4b4d51 100%);

-webkit-box-shadow: 0px 1px 0px rgba(0,0,0, .1), inset 0px 1px 0px rgba(255,255,255, .1);
-moz-box-shadow: 0px 1px 0px rgba(0,0,0, .1), inset 0px 1px 0px rgba(255,255,255, .1);
box-shadow: 0px 1px 0px rgba(0,0,0, .1), inset 0px 1px 0px rgba(255,255,255, .1);
}

А затем нам нужно добавить стили активного положения и положения при наведении. Мы изменим текст и цвет градации на зеленый.

.accordion .tab:hover,
.accordion div:target .tab {
color: #2b3b06;

text-shadow: 0px 1px 0px rgba(255,255,255, .15);

background: #a5cd4e;
background: -moz-linear-gradient(top, #a5cd4e 0%, #6b8f1a 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a5cd4e), color-stop(100%,#6b8f1a));
background: -webkit-linear-gradient(top, #a5cd4e 0%,#6b8f1a 100%);
background: -o-linear-gradient(top, #a5cd4e 0%,#6b8f1a 100%);
background: -ms-linear-gradient(top, #a5cd4e 0%,#6b8f1a 100%);
background: linear-gradient(top, #a5cd4e 0%,#6b8f1a 100%);

-webkit-box-shadow: 1px 1px 1px rgba(0,0,0, .3), inset 1px 1px 1px rgba(255,255,255, .45);
-moz-box-shadow: 1px 1px 1px rgba(0,0,0, .3), inset 1px 1px 1px rgba(255,255,255, .45);
box-shadow: 1px 1px 1px rgba(0,0,0, .3), inset 1px 1px 1px rgba(255,255,255, .45);
}

Разрабатываем гармошку с контентом на чистом CSS3

Этап 4 – Отображаем и прячем контент

В данном этапе мы будем прятать контент, и отображать его только после клика по вкладке. Чтобы спрятать его, мы воспользуемся параметром display: none; и параметром display: block; для целевого div’а. Мы также добавим некоторые анимации перехода, чтобы все это выглядело красиво, а также выставим 100 пикселей высоты целевому div’у.

.accordion div .content {
display: none;
margin: 5px 0;
}

.accordion div:target .content {
display: block;
}

.accordion > div {
height: 40px;
overflow: hidden;

-webkit-transition: all .3s ease-in-out;
-moz-transition: all .3s ease-in-out;
-o-transition: all .3s ease-in-out;
-ms-transition: all .3s ease-in-out;
transition: all .3s ease-in-out;
}

.accordion > div:target {
height: 100px;
}

Разрабатываем гармошку с контентом на чистом CSS3

Этап 5 – Контент вкладок

HTML

Теперь давайте добавим контент во вкладки. Мы создадим превью записи в блог с заголовком, абзацем текста, несколькими изображениями и некоторой мета-информацией. Вы можете изменить разметку по собственному усмотрению.

<div class="content">
<img src="img/post-img-1.png" alt="">
<h1>The Big Elephant in the City</h1>
<span>5 days ago</span> <em class="bullet"></em> <span>17 comments</span>
<p>Known locally as "SoMa", this neighborhood was home to the dot.com boom and boasts cutting-edge restaurants and boutiques.</p>
<ul>
<li><img src="img/thumb-1.png" alt=""></li>
<li><img src="img/thumb-2.png" alt=""></li>
<li><img src="img/thumb-3.png" alt=""></li>
</ul>
</div>

CSS

Стилизация контента очень проста, за исключением некоторых параметров CSS3. Мы рекомендуем вам найти информацию о параметрах, которые вы не знаете, чтобы лучше понимать процесс.

.accordion .content h1 {
color: white;
font: 18px/32px Arial, sans-serif;
}

.accordion .content p {
margin: 10px 0;
color: white;
font: 11px/16px Arial, sans-serif;
}

.accordion .content span {
font: italic 11px/12px Georgia, Arial, sans-serif;
color: #4f4f4f;
}

.accordion .content em.bullet {
width: 5px;
height: 5px;
margin: 0 5px;
background: #6b8f1a;
display: inline-block;

-webkit-box-shadow: inset 1px 1px 1px rgba(255,255,255, 0.4);
-moz-box-shadow: inset 1px 1px 1px rgba(255,255,255, 0.4);
box-shadow: inset 1px 1px 1px rgba(255,255,255, 0.4);

-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}

.accordion .content ul li {
list-style: none;
float: left;
margin: 5px 10px 5px 0;
}

.accordion .content img {
-webkit-box-shadow: 2px 2px 6px rgba(0,0,0, .5);
-moz-box-shadow: 2px 2px 6px rgba(0,0,0, .5);
box-shadow: 2px 2px 6px rgba(0,0,0, .5);
}


Мы также сменили высоту div’а на 360 пикселей.

.accordion > div:target {
height: 360px;
}

Разрабатываем гармошку с контентом на чистом CSS3

В завершение

Мы закончили разрабатывать нашу гармошку с контентом на чистом CSS3. Надеемся, что вам понравилось данное руководство.

* Смотреть демо
Внимание! У вас нет прав для просмотра скрытого текста.

Вернуться назад