Простой аккордеон на CSS3

Не так давно я писал о применении псевдо класса :target. В сегодняшнем уроке вы узнаете, как создать простой аккордеон, используя этот элемент CSS3.

Что такое аккордеон?

Если вы никогда не сталкивались с подобным элементом, то хочу сказать, что аккордеон - это прекрасное решение вопроса размещения контента на странице. Основная выгода – экономия места на странице.

HTML5

Для демонстрации примера я буду использовать лишь один новый HTML5 элемент, который называется section. Когда мы ориентируемся на старые браузеры, нам необходимо воспользоваться следующим трюком:

<script>document.createElement('section');</script>

А для Internet Explorer я использую следующую уловку:

<!--[if lt IE 9]>
  <script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

Разметка

Давайте, наконец, закончим с теорией и приступим к практике:

<div class="accordion">
        <section id="one">
                <h2><a href="#one">Heading 1</a></h2>
                <div>
                        <p>content</p>
                </div>
        </section>
</div>
  • Секция accordion будет содержать всё содержимое аккордеона;
  • Каждый элемент section содержит заголовок и контент;

CSS

section
{
        display: block;
} 

.accordion
{
        background-color: #eee;
        border: 1px solid #ccc;
        width: 600px;
        padding: 10px;
        margin: 50px auto;
        -moz-border-radius: 3px;
        -webkit-border-radius: 3px;
        border-radius: 3px;
        -moz-box-shadow: 0 1px 0 #999;
        -webkit-box-shadow: 0 1px 0 #999;
        box-shadow: 0 1px 0 #999;
}

.accordion section
{
        border-bottom: 1px solid #ccc;
        margin: 5px;
        background-color: #fff;
        background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#eee));
        background-image: -webkit-linear-gradient(top, #fff, #eee);
        background-image:    -moz-linear-gradient(top, #fff, #eee);
        background-image:     -ms-linear-gradient(top, #fff, #eee);
        background-image:      -o-linear-gradient(top, #fff, #eee);
        background-image:         linear-gradient(top, #fff, #eee);
        -moz-border-radius: 5px;
        -webkit-border-radius: 5px;
        border-radius: 5px;
}

.accordion h2,
 .accordion p
{
        margin: 0;
}

.accordion p
{
        padding: 10px;
}

.accordion h2 a
{
        display: block;
        position: relative;
        font: 14px/1 'Trebuchet MS', 'Lucida Sans';
        padding: 10px;
        color: #333;
        text-decoration: none;
        -moz-border-radius: 5px;
        -webkit-border-radius: 5px;
        border-radius: 5px;
}

.accordion h2 a:hover
{
        background: #fff;
}

.accordion h2 + div
{
        height: 0;
        overflow: hidden;
        -moz-transition: height 0.3s ease-in-out;
        -webkit-transition: height 0.3s ease-in-out;
        -o-transition: height 0.3s ease-in-out;
        transition: height 0.3s ease-in-out;
}

.accordion :target h2 a:after
{
    content: '';
        position: absolute;
        right: 10px;
        top: 50%;
        margin-top: -3px;
        border-top: 5px solid #333;
        border-left: 5px solid transparent;
        border-right: 5px solid transparent;
}

.accordion :target h2 + div
{
        height: 100px;
}

Результат

Демо работает только в тех браузерах, которые поддерживают псевдо класс :target. Так что, если вы вздумаете использовать этот аккордеон в ваших проектах, учтите, что решение, представленное в этом уроке, не является кроссбраузерным.

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


Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/RMDdbzKWD_Y/lessons.php

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

Простой аккордеон на CSS3 | | 2012-06-19 12:04:46 | | Статьи Web-мастеру | | Не так давно я писал о применении псевдо класса :target. В сегодняшнем уроке вы узнаете, как создать простой аккордеон, используя этот элемент CSS3.Что такое аккордеон?Если вы никогда не сталкивались | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: