box-shadowを使った影のつけ方(少し浮いて見える表現)
紙がめくれたり、少し浮いたように見える影(シャドウ)の表現をCSSで実装します。 CSS3のbox-shadowを使います。
目次
はじめに
紙がめくれたり、少し浮いたように見える影(シャドウ)の表現をbox-shadowを使って実装します。
解説もありますので、よければご覧ください。
完成はこちら
<div class="sample01"></div>
/* 白い四角 */
.sample01{
position: relative;
width: 200px;
height: 100px;
background-color: #fff;
}
/* 左右の影 */
.sample01::before,
.sample01::after{
content:"";
position: absolute;
z-index: -1;/*影を下の層に持っていく*/
bottom: 10px;
display: block;
width: 50%;
height: 50%;
box-shadow: 0 10px 5px #999;
}
/* 左側の影 */
.sample01::before{
left: 5px;
transform:rotate(-3deg);
}
/* 右側の影 */
.sample01::after{
right: 5px;
transform:rotate(3deg);
}
解説
影の部分をどう作るの?ということなんですが、左下の影と 右下との影はそれぞれbeforeとafterで実装できます。
わかりやすくするために、右下の影(after)だけを表示して、z-indexを調整してみました。
あの白い四角の下には、transform:rotate(-3deg);で少し傾けた 影付きの四角があります。これを左右に配置することで実装しています。
<右下の影だけ表示>
afterがz-index: 1;の場合
afterがz-index: -1;の場合
まとめ
一見どうやって作るの?と思うものも、分解して1つずつ考えていくと、理解できることも多いと思います。今回のは、そういう中の1つかな?と思います。ソースコードみて頂いてもわかりやすいと思いますので、難しいと感じた方は見てみてくださいね。

