Вкладки (табы) на чистом CSS
Обнаружил в интернете очень простой способ создания табов (сменяющих друг друга блоков с контентом). Обычно подобные вещи делаются с помощью javascript
, либо сейчас еще экспериментируют с CSS3
. Данный пример обходится без этого.
HTML
<ul class="tabs"> <li><a href="#one">1</a></li> <li><a href="#two">2</a></li> <li><a href="#three">3</a></li> <li><a href="#four">4</a></li> <li><a href="#five">5</a></li> </ul> <div class="tabs-content"> <ul> <li id="one">Содержимое 1-й вкладки</li> <li id="two">Содержимое 2-й вкладки</li> <li id="three">Содержимое 3-й вкладки</li> <li id="four">Содержимое 4-й вкладки</li> <li id="five">Содержимое 5-й вкладки</li> </ul> </div>
CSS
.tabs-content { width:960px; height:300px; overflow:hidden; } .tabs-content ul { list-style: none /* Эти 3 линии для Opera */ height: 320px; overflow: scroll; overflow-y: hidden; } .tabs-content ul li { width:960px; height:300px; }
Ссылки в навигации указывают на соответствующие id
блоков с контентом. Этим блокам указаны ширина и высота равные блоку tabs-content
. По умолчанию, при нажатии, браузер ищет в контенте блок с id
указанным в ссылке. А т.к. отображаться может какой-либо один блок, это заставляет показывать актуальный.
Работает в Firefox, Opera (для старых версий нужно немного дополнить css), Safari, Google Chrome, IE6+.
Живой пример
У Криса Койера также есть свои варианты CSS табов
Ну-ну, я такое ещё в imagos’е реализовывал.
Мишань, а как же ты тогда Оперу поборол в те далёкие времена?
Привет. Не подскажешь, как выделить в данном способе текущую выделенную вкладку?
Чуток скриптов придется добавить.
Интересный пример, но такие тыбы годятся только для простых вкладок, коды видеоплеера в такие табы не воткнёшь потому что при открытии новой вкладки с плеером — предыдущий плеер не закрывается и продолжает работать.
Естественно, что без
JavaScript
невозможно остановить воспроизведение аудио/видео-ролика. Данный способ не рассчитан на работу со скриптами, хотя добавить их очень просто. И заставить остановиться плеер тоже не составит труда при наличии у негоJavaScript-API
.Спасиб. Жаль что нет возможности воздействовать через один элемент на стили другого. Подобный аналог есть в css — target — но для него ie минимум 9.
Но как вариант без js и кросбраузер — он единсвтвенный.
Было бы классно видеть скрины рецептов, ибо пробовать вслепую как-то не хочется)
А в целом спасибо)
В статье есть ссылка на пример
А как обойти фикс. высоту height: 320px;? Точнее для каждого таба сделать её разную, динамическую… Чтобы можно было коды комментов вставлять и не следить за этой высотой контента.
Попробуйте
height
заменить наmin-height
Не пашэ min-height. Как подгонять под размер контейнера?
Хорошее решение, спасибо! Но есть проблема. Как сделать, чтобы при нажатии по вкладке страница не перескакивала экраном к началу этой же вкладки?
Боюсь, на чистом
CSS2
сделать так не получится. Можно попробовать прикрутитьCSS3
илиJavaScript
Было бы замечательно, если в примере появится небольшой JS, решающий эту проблему, а то эти скачки раздражают просто ужасно. Спасибо.
Ну тогда это уже будут не CSS вкладки
Только девушку в начале статьи убрать надо, чтобы не отвлекала от работы)))
Зачем же? Это мотивация
начальник посмотрит на мой монитор и не поймет: работаю я или развлекаюсь
Отключите картинки для это сайта ))) Тут таких мотивационных постов много
Спасибо.
Всегда пожалуйста
Это великолепно, я удивлен и никогда бы не подумал так делать)
Все до безобразия просто и понятно
Использую этот вид Таба. При нажатии на кнопку, происходит небольшой скрол страницы вниз, которого не должно быть. Как убрать этот скрол? Пример(левый сайдбар) — http://appsquared.ru/category/top
Никак — в этом и есть смысл табов. Без JavaScript тут не обойтись