Всем привет! Сегодня я покажу, как можно создать слайдер на чистом CSS3 без использования javascript .

Как сделать слайдер на чистом CSS3 без использования JavaScript.

Всем привет! Сегодня я покажу, как можно создать слайдер на чистом CSS3 без использования javascript.

Бывают случаи, когда мы не можем использовать javascript, но нам нужно сделать слайдер. Вот здесь и можно использовать возможности CSS3.

Итак, вот структура

<div class="carousel-wrapper" style="height: 400px;">
  <span id="target-item-1"></span>
  <span id="target-item-2"></span>
  <span id="target-item-3"></span>
  <div class="carousel-item item-1">
   <h2>Item 1</h2>
   <p>Content goes here.</p>
   <a class="arrow arrow-prev" href="#target-item-3"></a>
   <a class="arrow arrow-next" href="#target-item-2"></a>
  </div>
  <div class="carousel-item item-2 light" style="background-color: royalblue;">
   <h2>Item 2</h2>
   <p>Content goes here.</p>
   <a class="arrow arrow-prev" href="#target-item-1"></a>
   <a class="arrow arrow-next" href="#target-item-3"></a>
  </div>
  <div class="carousel-item item-3">
   <h2>Item 3</h2>
   <p>Content goes here.</p>
   <a class="arrow arrow-prev" href="#target-item-2"></a>
   <a class="arrow arrow-next" href="#target-item-1"></a>
  </div>
</div>

А теперь магия - CSS. В нашем случае SCSS.

.carousel-wrapper {
  position: relative;
  .carousel-item {
   position: absolute;
   top: 0;
   bottom: 0;
   left: 0;
   right: 0;
   padding: 25px 50px;
   opacity: 0;
   transition: all 0.5s ease-in-out;

   .arrow {
   position: absolute;
   top: 0;
   display: block;
   width: 50px;
   height: 100%;
   -webkit-tap-highlight-color: rgba(0,0,0,0);
   background: url("/carousel-arrow-dark.png") 50% 50% / 20px no-repeat;

    &.arrow-prev {
     left: 0;
    }

    &.arrow-next {
     right: 0;
     -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
    }
}

   &.light {
    color: white;

    .arrow {
     background: url("/carousel-arrow-light.png") 50% 50% / 20px no-repeat;
    }
   }

   @media (max-width: 480px) {
    .arrow, &.light .arrow {
     background-size: 10px;
     background-position: 10px 50%;
    }
   }
  }

  [id^="target-item"] {
   display: none;
  }

  .item-1 {
   z-index: 2;
   opacity: 1;
  }

  *:target ~ .item-1 {
   opacity: 0;
  }

  #target-item-1:target ~ .item-1 {
   opacity: 1;
  }

  #target-item-2:target ~ .item-2, #target-item-3:target ~ .item-3 {
   z-index: 3;
   opacity: 1;
  }
}

Вот и все! Добавьте свои картинки стрелочек, картинки слайдов и текст и пользуйтесь!

Спасибо за внимание!