今回はなんの変哲もない画像一覧にスタイル修正を行うことで、まるでそこにあるかのように超リアルで1000倍洗練された3D画像のレイアウトを実装しました。
transformとbox-shadowを使用しているのでコードの解説を見ながら簡単にカスタマイズもできます
htmlとcssだけしか使っていません。
コードの説明や実際の動きも詳しくまとめてみたので自由にお使いください。
こちらのエフェクトのコードはすべて完全オリジナルなのでコピペ大歓迎です。
この記事の目次
まるでそこにあるかのような超リアルな3D画像レイアウト
目次
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%;
}
ここがポイント!
- transfromプロパティとbox-shadowを使って画像を3Dに変形
- perspectiveで3D変形の奥行きの指定
- 画像レイアウトを整理
参考
そもそもWebデザインの基礎がわからない。。
そんなあなたにはこれ!
未経験からWeb制作で月50万稼げるようになったUdemy教材3選
でもなあ、独学だと心配だしプログラミングスクールで学びたい!。かといってお金はかけたくないし。。
そんなあなたにはこれ!
完全無料で一人前のエンジニアになれるプログラミングスクールあります