HTMLとCSSのコピペでできるカルーセル・スライダーのデザイン2種

スライダー・カルーセルのイラスト

よく聞くWEBで使用するカルーセルとスライダーには明確な違いはなく、どちらで検索してもほとんど同じ結果になりますので、あまり気にする必要はなさそうです。

このカルーセル・スライダーには様々なパターンがあります。

jsで実装した方が早く簡単なものがいっぱいありますが、今回はHTMLとCSSのコピペでできるカルーセル・スライダーのデザイン2種についてご紹介します。

自動で横に流れるカルーセル・スライダー

写真が自動で左に流れていくスライダーで、デフォでは3枚セットしています。

意図してクリックとかはさせることはできますが、左右の矢印などないUIなので、トップページで写真をアイキャッチに使うにはいいかもしれません。

slider_image1
slider_image2
slider_image3

シンプルな作りで、リンクをつける場合は追加で:hoverのCSSを追記してあげるといいかもしれません。

コードを表示する

HTML

<div class="slider">
    <div class="slider__content"><img src="https://dubdesign.net/wp-content/uploads/2020/05/0515_illustrator_eyecatch2.jpg" alt="slider_image1" class="slider__img"></div>
    <div class="slider__content"><img src="https://dubdesign.net/wp-content/uploads/2020/05/0514_inhouse_designereyecatch.jpg" alt="slider_image2" class="slider__img"></div>
    <div class="slider__content"><img src="https://dubdesign.net/wp-content/uploads/2020/05/0510_personaeyecatch.jpg" alt="slider_image3" class="slider__img"></div>
</div>

CSS

.slider{
    width: 100%;
    margin: 0 auto;
    overflow: hidden;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: center;
}
 
.slider__content{
    min-width: 100%;
    animation: sliderAnime 12s ease-in-out infinite;
}
  
@keyframes sliderAnime{
    0%{
 
    }
    16.6%{
        transform: translateX(0);
    }
    33.3%{
        transform: translateX(-100%);
    }
    50%{
        transform: translateX(-100%);
    }
    66.6%{
        transform: translateX(-200%);
    }
    83.2%{
        transform: translateX(-200%);
    }
    100%{
        transform: translateX(0);
    }
} 
 
.slider__img{
    max-width: 100%;
    min-width: 100%;
}

横にスライドで流れるカルーセル・スライダー

左右にスワイプするとスライドが切り替わる仕様のカルーセル・スライダーで、最大5枚設置できるサイズです。

1 2 3 4 5
1
2
3
4
5

HTMLがシンプルなので、弄りやすい造りです。

コードを表示する

HTML

<div class="slider2">
  
  <a href="#slide2-1">1</a>
  <a href="#slide2-2">2</a>
  <a href="#slide2-3">3</a>
  <a href="#slide2-4">4</a>
  <a href="#slide2-5">5</a>
 
  <div class="slides2">
    <div id="slide2-1">
      1
    </div>
    <div id="slide2-2">
      2
    </div>
    <div id="slide2-3">
      3
    </div>
    <div id="slide2-4">
      4
    </div>
    <div id="slide2-5">
      5
    </div>
  </div>
</div>

CSS

* {
  box-sizing: border-box;
}

.slider2 {
  width: 100%;
  text-align: center;
  overflow: hidden;
  margin: 30px 0;
}

.slides2 {
  display: flex;
  
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  
  
  
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  
  /*
  scroll-snap-points-x: repeat(300px);
  scroll-snap-type: mandatory;
  */
}
.slides2::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
.slides2::-webkit-scrollbar-thumb {
  background: black;
  border-radius: 10px;
}
.slides2::-webkit-scrollbar-track {
  background: transparent;
}
.slides2 > div {
  scroll-snap-align: start;
  flex-shrink: 0;
  width: 100%;
  height: 300px;
  margin-right: 50px;
  border-radius: 10px;
  background: #eee;
  transform-origin: center center;
  transform: scale(1);
  transition: transform 0.5s;
  position: relative;
  
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 100px;
}
.slides2 > div:target {
/*   transform: scale(0.8); */
}
.author-info2 {
  background: rgba(0, 0, 0, 0.75);
  color: white;
  padding: 0.75rem;
  text-align: center;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  margin: 0;
}
.author-info2 a {
  color: white;
}
img2 {
  object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.slider2 > a {
  display:none;
  width: 1.5rem;
  height: 1.5rem;
  background: white;
  text-decoration: none;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  margin: 0 0 0.5rem 0;
  position: relative;
}
.slider2 > a:active {
  top: 1px;
}
.slider2 > a:focus {
  background: #000;
}

/* Don't need button navigation */
@supports (scroll-snap-type) {
  .slider2 > a {
    display: none;
  }
}

カルーセルの基本的な使い方

カルーセルは、サービスサイトやコーポレートサイト、採用サイトなどのファイーストビューのエリアでよく見るUIで、幅広く利用されており複数の選択肢やコンテンツを並列に表示します。

基本的な使い方と特性を理解して、カルーセルを有効に使いましょう。