Dobrovoi Master
сделано с душой
В состоянии постоянного подключения...

Сниппет для вкладок (табов) на чистом css3

Сниппет для вкладок навигации на 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

Удачи! Всех, С Новым годом!

Всего комментариев: 13

  • Георгий: 28 апреля, 2014 в 22:19

    Спасибо! Всё отлично работает.

    Ответить
    • driver: 29 апреля, 2014 в 15:34

      Пожалуйста, Георгий. Вам спасибо за отзыв.

      Ответить
  • Иван: 21 апреля, 2015 в 18:58

    Здравствуйте! Красивые вкладки и хорошо работают во всех браузерах кроме IE, здесь пытается отобразить как списки. Пробовал на IE11. Можно это как-то поправить?

    Ответить
    • driver: 21 апреля, 2015 в 19:49

      Иван, здравствуйте. Спасибо за отзыв, но вы не правы, именно в IE11 всё работает замечательно. Впрочем может у меня браузер какой-то не такой))))

      Ответить
  • Иван: 22 апреля, 2015 в 11:09

    Не знаю. Взял пример, ничего не изменял. Проверял на разных ПК с IE. К сожалению пока не работат.

    Ответить
  • Иван: 22 апреля, 2015 в 12:07

    Вообщем локально в IE работает нормально, если с хостинга то начинаются проблемы. Скорее всего с формой все нормально, буду искать проблему у себя. Спасибо.

    Ответить
  • Yaroslav: 30 мая, 2015 в 12:22

    Спасибо все работает отлично и просто в реализации.

    Ответить
    • driver: 30 мая, 2015 в 15:55

      Рад, что вам пригодилось, заходите почаще.

      Ответить
  • Павел: 8 ноября, 2015 в 20:58

    Здравствуйте. Подскажите пожалуйста, как сделать, чтоб вкладки раздвигались в по высоте по размеру контента во вкладке. У меня идея использовать их под галерею работ. Например вкладка Работы 2013г Работы 2014г и т.д. Картинок будет разное количество.
    Меняю
    .tabs { width: 100%;
    height: 220px;
    Но не помогает)

    Ответить
    • driver: 9 ноября, 2015 в 01:57

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

      Ответить
      • Павел: 9 ноября, 2015 в 15:37

        Большое спасибо! Видел эти табы, но прошел мимо, сейчас буду пробовать)

        Ответить
  • Алекс: 25 мая, 2017 в 10:44

    Большое спасибо)

    Ответить
  • Елена: 5 июня, 2017 в 14:17

    Спасибо вам огромное! По аналогии реализовала боковое меню, сама не сообразила использовать радиобаттоны, ну и вообще сохранила ваш блог, буду пользоваться приемами

    Ответить

Оставить комментарий

Ваш email не будет опубликован.

Вы можете использовать следующие HTML тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>