11.11.14, 17:36
0 комментарий
  Уроки

Разрабатываем вкладки контента на чистом CSS-коде

Поскольку CSS3 начал получать больше популярности, и больше браузеров начинает поддерживать его, много общих взаимодействий, которые Вы ожидали бы от веб-сайта, которые были созданы, используя javascript, теперь заменяются чистыми решениями CSS. Сегодня я покажу Вам, как создать оживленные счет содержания, используя только CSS.



И так, приступим.

HTML:

<ul class="tabs">
        <li>
          <input type="radio" checked name="tabs" id="tab1">
          <label for="tab1">tab 1</label>
          <div id="tab-content1" class="tab-content animated fadeIn">
    ...
          </div>
        </li>
        <li>
          <input type="radio" name="tabs" id="tab2">
          <label for="tab2">tab 2</label>
          <div id="tab-content2" class="tab-content animated fadeIn">
            ...
          </div>
        </li>
        <li>
          <input type="radio" name="tabs" id="tab3">
          <label for="tab3">tab 3</label>
          <div id="tab-content3" class="tab-content animated fadeIn">
            ...
          </div>
        </li>
</ul>


CSS:

body, html {
          height: 100%;
          margin: 0;
          -webkit-font-smoothing: antialiased;
          font-weight: 100;
          background: #aadfeb;
          text-align: center;
          font-family: helvetica;
      }
       
      .tabs input[type=radio] {
          position: absolute;
          top: -9999px;
          left: -9999px;
      }
      .tabs {
        width: 650px;
        float: none;
        list-style: none;
        position: relative;
        padding: 0;
        margin: 75px auto;
      }
      .tabs li{
        float: left;
      }
      .tabs label {
          display: block;
          padding: 10px 20px;
          border-radius: 2px 2px 0 0;
          color: #08C;
          font-size: 24px;
          font-weight: normal;
          font-family: 'Lily Script One', helveti;
          background: rgba(255,255,255,0.2);
          cursor: pointer;
          position: relative;
          top: 3px;
          -webkit-transition: all 0.2s ease-in-out;
          -moz-transition: all 0.2s ease-in-out;
          -o-transition: all 0.2s ease-in-out;
          transition: all 0.2s ease-in-out;
      }
      .tabs label:hover {
        background: rgba(255,255,255,0.5);
        top: 0;
      }
       
      [id^=tab]:checked + label {
        background: #08C;
        color: white;
        top: 0;
      }
       
      [id^=tab]:checked ~ [id^=tab-content] {
          display: block;
      }
      .tab-content{
        z-index: 2;
        display: none;
        text-align: left;
        width: 100%;
        font-size: 20px;
        line-height: 140%;
        padding-top: 10px;
        background: #08C;
        padding: 15px;
        color: white;
        position: absolute;
        top: 53px;
        left: 0;
        box-sizing: border-box;
        -webkit-animation-duration: 0.5s;
        -o-animation-duration: 0.5s;
        -moz-animation-duration: 0.5s;
        animation-duration: 0.5s;
      }


Прежде всего, чтобы копировать функциональность javascript, мы должны найти способ позволить CSS знать, что пользователь щелкнул кнопкой. С javascript мы можем просто добавить название класса по щелчку, но так как мы не собираемся использовать javascript, мы должны взломать наш путь через это. То, что я сделал, я использовал скрытую радио-кнопку, которая связана с признаком этикетки через признак рэла. Этикетка будет действовать как кнопка и когда Вы щелкнете этикеткой, этикетка вызовет “проверенный” признак той связанной радио-кнопки. Теперь мы можем предназначаться для наших стилей с a: проверенный отборщик.

От повышения HTML Вы видите, что у меня есть радио-кнопка, этикетка и контейнер на том же самом уровне. Есть причина этого. С помощью удивительного родного брата CSS combinator (~) у нас может быть один отборщик, вызывающий другого отборщика того-же-самого-уровня, даже не будучи гнездящимся он вместе. Это позволяет нам иметь любую радио-кнопку с проверкой, вызывающей любой контейнер, чтобы появиться так, чтобы это копировало поведение нормального счета содержания, созданного с javascript.

В ЗАКЛЮЧЕНИИ

Теперь у Вас есть красивое оживленное содержание счета для Вашего веб-сайта, даже не трогая никакой javascript.

Исходники можно скачать архивом.

СКАЧАТЬ

Вес файла
32.39 Kb

Реклама

Напишите своё мнение

  • acuteaggressiveair_kissangel
    badbbbeachbeee
    biggrinbig_bossblumblush
    boastbombboredombye
    clappingcraycrazycurtsey
    dancedashdeclarediablo
    diroldon-t_mentiondownloaddrinks
    first_moveflirtfocusfool
    friendsgive_heartgive_rosegood
    hangheartheathelp
    hihunterhystericireful
    kingkisslaughlazy
    lolmail1mambaman_in_love
    mdamega_shokmoilmosking
    musicneanegativenew_russian
    okon_the_quietpardonparting
    partypilotpioneerpleasantry
    popcormpranksterprevedpunish
    roflrtfmrussiansad
    sarcasticscarescratchsearch
    secretsensoredshokshout
    slowsmilesmokesoldier
    soldier_girlsorryspitefulspruce_up
    stinkersuicidesunsuperstition
    swoonteasetenderthanks
    thisto_pick_ones_noseto_take_umbragetreaten
    umnikunknwvampirevava
    victorywackowhistlewink
    wizardyahooyesyu
    e101e102e103e104
    e105e106e107e108
    e109e110e111e112
    e113e114e115e116
    e117e118e119e120
    e121e122e123e124
    e125e126e127e128
    e129e130e131e132
    e133e134e135e136
    e137e138e139e140
    e141e142e143e144
    e145e146e147e148
    e149e150e151e152
    e153e154e155e156
    e157e158e159e160
    e161e162e163e164
    e165e166e167e168
    e169e170e171e172
    e173e174e175e176
    e177e178e179e180
    e181e182e183e184
    e185e186e187e188
    e189e190e191e192
    e193e194e195e196
    e197e198e199e200
    e201e202e203e204