Сниппет для вкладок (табов) на чистом css3
Простейший способ создать эффективную панель вкладок без использования каких-либо javascript и изображений. Самое простое решение из всех, которые я встречал. Ничего лишнего, минимум кода и, компактный блок с переключаемыми вкладками легко интегрируется в любой макет страницы.
Экспериментируя с параметрами свойств CSS, вы всегда сможете сформировать внешний вид вкладок, так чтобы они гармонично вписывались в общий дизайн ваших проектов.
Расписывать подробно весь расклад процесса разработки, не вижу особой надобности, всё и так более-чем очевидно, стоит лишь только раз взглянуть на фрагмент исполняемого кода, и на живой пример работы этих вкладок.
CSS Стили
.tabs { width: 100%; height: 220px; } .tabs ul, .tabs li { margin: 0; padding: 0; list-style: none; } .tabs, .tabs input[type="radio"]:checked + label { position: relative; } .tabs li, .tabs input[type="radio"] + label { display: inline-block; } .tabs li > div, .tabs input[type="radio"] { position: absolute; } .tabs li > div, .tabs input[type="radio"] + label { border: solid 1px #ccc; } .tabs { font: normal 11px Arial, Sans-serif; color: #404040; } .tabs li { vertical-align: top; } .tabs li:first-child { margin-left: 8px; } .tabs li > div { top: 33px; bottom: 0; left: 0; width: 100%; padding: 8px; overflow: auto; background: #fff; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } .tabs input[type="radio"] + label { margin: 0 2px 0 0; padding: 0 18px; line-height: 32px; background: #f1f1f1; text-align: center; border-radius: 5px 5px 0 0; cursor: pointer; -moz-user-select: none; -webkit-user-select: none; user-select: none; } .tabs input[type="radio"]:checked + label { z-index: 1; background: #fff; border-bottom-color: #fff; cursor: default; } .tabs input[type="radio"] { opacity: 0; } .tabs input[type="radio"] ~ div { display: none; } .tabs input[type="radio"]:checked:not(:disabled) ~ div { display: block; } .tabs input[type="radio"]:disabled + label { opacity: .5; cursor: no-drop; } |
HTML Каркас
<div class="tabs"> <ul> <li> <input type="radio" name="tabs-0" checked="checked" id="tabs-0-0" /> <label for="tabs-0-0">Вкладка 1</label> <div> <h3>Преодолевая зло</h3> <p>Когда-то в одном маленьком селе жил-был хоббит. Звали его Федулом. Из pодных и близких y него совсем никого не было, потому он сладкого ел, сколько лезло, а домой мог девиц водить. И в один прекрасный день с ним встречается побитый сосед. И говорит: — Нет ли чего выпить? А то так есть хочется, что переночевать негде. Герой делает вид, что занят.Тогда странный собеседник говорит: — Черные всадники ищут тебя! И герой вынужден покинуть родные места. Он бежит к знакомым стpанного визитеpа. А странный визитер вычищает оставшийся без хозяина дом. </p> </div> </li> <li> <input type="radio" name="tabs-0" id="tabs-0-1" /> <label for="tabs-0-1">Вкладка 2</label> <div> <h3>Зловещий повелитель</h3> <p>В стародавние времена в одном мусорном контейнере жил-был эльф-полукровка. Звали его Лавруша, но он просил чтобы к нему обращались не иначе как Лаврентий Павлович. Из pодных и близких y него была одна нянечка, Арина Родионовна.И в один прекрасный день с ним встречается побитый сосед. И говорит: - Как, ты еще жив?! Герой в упор его не замечает. Тогда странный собеседник говорит: - Враг у ворот! И герой вынужден покинуть родные места. Он бежит, и деревья своими ветвями хлещут его в лицо. А странный визитер падает замертво. </p> </div> </li> <li> <input type="radio" name="tabs-0" id="tabs-0-2" /> <label for="tabs-0-2">Вкладка 3</label> <div> <h3>Одинокий цветок</h3> <p>Когда-то в одном маленьком селе жил-был хулиганистый, задиристый, но очень добрый в душе паренек. Звали его как отца, но похож он был на соседа. Из pодных и близких y него была сестрица Аленушка, подлюка редкая. И вот однажды к немy подходит стpанно выглядящий человек. И говорит: - Следуй за мной! Герой прикидывает, куда бы перепрятать накопленное золотишко. Тогда странный собеседник говорит: - Я заболтаю тебя до смерти! </p> </div> </li> <li> <input type="radio" name="tabs-0" id="tabs-0-3" disabled="disabled" /> <label for="tabs-0-3">Вкладка 4</label> <div> <h3>Разрушая одиночку</h3> <p>Главный злодей растерян. Он-то думал, что это он Хороший, а оказалось совсем наоборот. Не в силах перенести это потрясение злодей делает себе харакири двуручным мечом. Все делают вид, что счастливы. А главный герой понимает, что исполнил свое предназначение, и теперь он может вернуться домой, чтобы в сытости и довольстве прозябать до самой старости.</p> </div> </li> </ul> </div> |
Надеюсь, что это интересное решение по созданию управляемых вкладок(табов) заинтересует многих. Если вам известны другие, практичные способы реализации элементов такого рода, пишите в комментариях, и в следующих обзорах я обязательно расскажу о них.
Источник: cssreflex
Удачи! Всех, С Новым годом!
Спасибо! Всё отлично работает.
Пожалуйста, Георгий. Вам спасибо за отзыв.
Здравствуйте! Красивые вкладки и хорошо работают во всех браузерах кроме IE, здесь пытается отобразить как списки. Пробовал на IE11. Можно это как-то поправить?
Иван, здравствуйте. Спасибо за отзыв, но вы не правы, именно в IE11 всё работает замечательно. Впрочем может у меня браузер какой-то не такой))))
Не знаю. Взял пример, ничего не изменял. Проверял на разных ПК с IE. К сожалению пока не работат.
Вообщем локально в IE работает нормально, если с хостинга то начинаются проблемы. Скорее всего с формой все нормально, буду искать проблему у себя. Спасибо.
Спасибо все работает отлично и просто в реализации.
Рад, что вам пригодилось, заходите почаще.
Здравствуйте. Подскажите пожалуйста, как сделать, чтоб вкладки раздвигались в по высоте по размеру контента во вкладке. У меня идея использовать их под галерею работ. Например вкладка Работы 2013г Работы 2014г и т.д. Картинок будет разное количество.
Меняю
.tabs { width: 100%;
height: 220px;
Но не помогает)
Здравствуйте, Павел.
Зачем огород городить, у меня есть готовое решение: Тынц
Можете исключить шрифт-иконки и изменить значения медиа-запросов. Появятся вопросы пишите в ветке комментов к статье
Большое спасибо! Видел эти табы, но прошел мимо, сейчас буду пробовать)
Большое спасибо)
Спасибо вам огромное! По аналогии реализовала боковое меню, сама не сообразила использовать радиобаттоны, ну и вообще сохранила ваш блог, буду пользоваться приемами