【フロント初心者必見】まるで触れられそうな超リアル3D画像レイアウトをコピペだけで実装

今回はなんの変哲もない画像一覧にスタイル修正を行うことで、まるでそこにあるかのように超リアルで1000倍洗練された3D画像のレイアウトを実装しました。

transformとbox-shadowを使用しているのでコードの解説を見ながら簡単にカスタマイズもできます

htmlとcssだけしか使っていません。
コードの説明や実際の動きも詳しくまとめてみたので自由にお使いください。

こちらのエフェクトのコードはすべて完全オリジナルなのでコピペ大歓迎です。

 

この記事の目次

まるでそこにあるかのような超リアルな3D画像レイアウト

  1. エフェクトの確認
  2. コードの確認
  3. このエフェクトのポイント!

 

1. まるで触れられそうな3D画像レイアウト

下の画像のような3D画像になります

 

コードの確認

 

<div class="container">
  <div class="image1">
    <img src="https://source.unsplash.com/1000x800" style="background-size:cover;" class="img" alt="">
  </div>
  <div class="image2">
    <img src="https://source.unsplash.com/1000x801" style="background-size:cover;" class="img" alt="">
  </div>
  <div class="image3">
    <img src="https://source.unsplash.com/1000x802" style="background-size:cover;" class="img" alt="">
  </div>
  <div class="image4">
    <img src="https://source.unsplash.com/1000x803" style="background-size:cover;" class="img" alt="">
  </div>
</div>
* {
  padding: 0;
  margin: 0;
}
.container {
  width: 100%;
  min-height: 100vh;
}
.image1 {
  perspective: 3000px;
  /* 3D変形の奥行きの指定 */
  width: 50%;
  position: absolute;
  left: 40%;
  top:30%;
  transform: translate(-50%, -50%);
  /* 画像の移動距離を調整 */
}
.image1 img {
  transform: rotateX(50deg) rotateZ(-30deg) translate3d(-120px, -80px, 30px);
  /* 画像の角度と移動距離を調整 */
  box-shadow: -30px 30px 15px 5px rgba(0,0,0,0.4);
  /* ボックスに影をつける(左から水平方向の長さ、垂直方向の長さ、ぼかしの長さ、広がりの長さ、色) */
  width: 50%;
  height: 50%;
}
.image2 {
  perspective: 3000px;
  /* 3D変形の奥行きの指定 */
  width: 50%;
  position: absolute;
  left: 80%;
  top:30%;
  transform: translate(-50%, -50%);
  /* 画像の移動距離を調整 */
}
.image2 img {
  transform: rotateX(50deg) rotateZ(-30deg) translate3d(-120px, -80px, 30px);
  /* 画像の角度と移動距離を調整 */
  box-shadow: -30px 30px 15px 5px rgba(0,0,0,0.4);
  /* ボックスに影をつける(左から水平方向の長さ、垂直方向の長さ、ぼかしの長さ、広がりの長さ、色) */
  width: 50%;
  height: 50%;
}
.image3 {
  perspective: 3000px;
  /* 3D変形の奥行きの指定 */
  width: 50%;
  position: absolute;
  left: 40%;
  top:75%;
  transform: translate(-50%, -50%);
  /* 画像の移動距離を調整 */
}
.image3 img {
  transform: rotateX(50deg) rotateZ(-30deg) translate3d(-120px, -80px, 30px);
  /* 画像の角度と移動距離を調整 */
  box-shadow: -30px 30px 15px 5px rgba(0,0,0,0.4);
  /* ボックスに影をつける(左から水平方向の長さ、垂直方向の長さ、ぼかしの長さ、広がりの長さ、色) */
  width: 50%;
  height: 50%;
}
.image4 {
  perspective: 3000px;
  /* 3D変形の奥行きの指定 */
  width: 50%;
  position: absolute;
  left: 80%;
  top: 75%;
  transform: translate(-50%, -50%);
  /* 画像の移動距離を調整 */
}
.image4 img {
  transform: rotateX(50deg) rotateZ(-30deg) translate3d(-120px, -80px, 30px);
  /* 画像の角度と移動距離を調整 */
  box-shadow: -30px 30px 15px 5px rgba(0,0,0,0.4);
  /* ボックスに影をつける(左から水平方向の長さ、垂直方向の長さ、ぼかしの長さ、広がりの長さ、色) */
  width: 50%;
  height: 50%;
}
ここがポイント!
  1. transfromプロパティとbox-shadowを使って画像を3Dに変形
  2. perspectiveで3D変形の奥行きの指定
  3. 画像レイアウトを整理

参考

そもそもWebデザインの基礎がわからない。。
そんなあなたにはこれ!

ふたご


でもなあ、独学だと心配だしプログラミングスクールで学びたい!。かといってお金はかけたくないし。。
そんなあなたにはこれ!

ふたご

完全無料で一人前のエンジニアになれるプログラミングスクールあります
  1. プログラミング学習&サポートが無料!
  2. 誰もが知っている超優良企業への就職サポート付き!
  3. 学習言語:Java、PHP、HTML、CSSなど

 

   話だけ聞いてみる