CSSだけでサムネイルをクリックすると画像が切り替わるイメージギャラリー

Ads

Result

こういうやつです。割と今更感な内容ですが書いてなかった気がするので

例によってinput:checkedを使います

css

.gallery {/*親*/
  display: flex;
  margin: 10px auto;
  max-width: 600px;
  position: relative;
  padding-top: 66.6666666667%;
}

.gallery__img {/*表示される大きな画像。エフェクト付き*/
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}
.gallery__thumb {/*サムネイル*/
  padding-top: 6px;
  margin: 6px;
  display: block;
}
.gallery__selector {
  position: absolute;
  opacity: 0;
  visibility: hidden;
}
.gallery__selector:checked + .gallery__img {/*大きな画像は全て透明にしておき、チェックが入ったら表示させる*/
  opacity: 1;
}
.gallery__selector:checked ~ .gallery__thumb > img {/*サムネは選択されたら枠が表示されるように*/
  box-shadow: 0 0 0 3px #0be2f6;
}

仕組みは今までと変わりません。画像は非表示設定にしておき、チェックが入ったら表示します

html

<section class="gallery">
  <div class="gallery__item">
    <input type="radio" id="img-1" checked name="gallery" class="gallery__selector"/>
    <img class="gallery__img" src="large.jpg" alt=""/>
    <label for="img-1" class="gallery__thumb"><img src="small.jpg" alt=""/></label>
  </div>
  <div class="gallery__item">
  ・
  ・
  ・
  </div>
</section>

via

CSS Image Gallery