Главная » Сниппеты » Сниппет для вкладок навигации на css3

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

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

Google Bookmarks News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Вы можете оставить отзыв, подписаться на обновленияОбновления блога по RSSRSS или Обновления блога на TwitterTwitter !

11 комментариев
  1. Георгий says:

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

    Ответить
  2. Павел says:

    Здравствуйте. Подскажите пожалуйста, как сделать, чтоб вкладки раздвигались в по высоте по размеру контента во вкладке. У меня идея использовать их под галерею работ. Например вкладка Работы 2013г Работы 2014г и т.д. Картинок будет разное количество.

    Меняю

    .tabs { width: 100%;

    height: 220px;

    Но не помогает)

    Ответить
    • driver says:

      Здравствуйте, Павел.

      Зачем огород городить, у меня есть готовое решение: Тынц

      Можете исключить шрифт-иконки и изменить значения медиа-запросов. Появятся вопросы пишите в ветке комментов к статье

      Ответить
  3. Иван says:

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

    Ответить
    • driver says:

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

      Ответить
  4. Иван says:

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

    Ответить
  5. Иван says:

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

    Ответить
  6. Yaroslav says:

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

    Ответить
    • driver says:

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

      Ответить
Присоединяйтесь к обсуждению!

Отправляя кoммeнтapий, Вы автоматически принимаете правила кoммeнтиpoвaния на этом блоге.

Правила кoммeнтиpoвaния на блоге Dobrovoimaster:

  1. Во избежание захламления спамом, первый кoммeнтapий всегда проходит премодерацию.
  2. В поле "Ваш сайт" лучше указывать ссылку на главную страницу вашего сайта/блога. Ссылки на прочую веб-лабуду (в том числе блоги/сплоги, созданные не для людей) будут удалены.
  3. Не используйте в качестве имени комментатора слоганы/названия сайтов, рекламные фразы, ключевые и т.п. слова. В случае несоблюдения этого условия, имя изменяю на свое усмотрение. Просьба указывать нормальное имя или ник.
  4. Скорее всего, что не информативный и короткий кoммeнтapий вида "Спасибо!", "Интересная статья", будет удален. Исключение составляют знакомые автору блога комментаторы.
  5. Комментарии не по теме безжалостно удаляются.

Подписаться не комментируя

Обновления комментариев по RSS RSS комментариев к этой записи »
Рейтинг@Mail.ru