Сегодня мы узнаем, как создать симпатичный аккордеон на чистом CSS3. Данный пример основан на Futurico UI Pro от Владимира Кудинова. Он будет работать во всех браузерах и устройствах, которые поддерживают селектор :target.
Шаг 1 - Основная HTML-разметка
Давайте создадим три div-а с разными ID, где каждый div будет иметь связь с классом вкладки, и div с классом content.
Для того чтобы аккордеон открывался, когда мы нажимаем на него, мы должны использовать селектор :target. Селектор :target будет работать только если у нас будет ссылка, которая указывает на идентификатор, и когда мы нажмем на эту ссылку, id становится ссылкой на элемент.
<divclass="accordion"> <divid="tab-1"> <ahref="#tab-1"class="tab">Option One</a> <divclass="content">
Content Here </div> </div> <divid="tab-2"> <ahref="#tab-2"class="tab">Option Two</a> <divclass="content">
Content Here </div> </div> <divid="tab-3"> <ahref="#tab-3"class="tab">Option Three</a> <divclass="content">
Content Here </div> </div> </div>
Шаг 2 - Основные стили аккордеона
Мы начнем с добавления некоторых reset-стилей, чтобы удалить все поля, отступы и границы, которые устанавливают браузеры.
Теперь давайте зададим стили для заголовка вкладки, по умолчанию, с некоторыми CSS3 градиентами, тенями, закругленными углами и некоторыми базовами свойствами CSS (шрифт, отступы, цвета и т.д.).
Вначале мы будем скрывать все содержание и показывать его только тогда, когда вы нажимаете на вкладку. Чтобы скрыть его мы будем использовать свойство display:none и display:block; для открытого блока. Мы также добавим анимацию при раскрытии, чтобы он выглядел лучше, и высоту 100px для открытого блока.
.accordion div .content{ display:none; margin:5px0; }
.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; }
Шаг 5 - Содержимое вкладки
HTML-разметка
Давайте добавим содержание во вкладки. Мы будем создавать превью поста блога с названием, текстом, некоторыми изображениями и другой информацией. Вы можете изменить разметку, как вам нравится, это не обязательно, просто чтобы сделать этот аккордеон более полным.
<divclass="content"> <imgsrc="img/post-img-1.png"alt=""> <h1>The Big Elephant in the City</h1> <span>5 days ago</span><emclass="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><imgsrc="img/thumb-1.png"alt=""></li> <li><imgsrc="img/thumb-2.png"alt=""></li> <li><imgsrc="img/thumb-3.png"alt=""></li> </ul> </div>
CSS
Стили самые простые и мы не будем останавливаться подробно на их описании.