CSSで作る写真が重なったようにみえるフレーム

Published


CSSで2枚の写真が重なったようにみえるフレームを作ったのでメモします。
サンプルページ

.frameImage {
width: 290px;
height: 290px;
-webkit-transform: rotate(-2deg);
-moz-transform: rotate(-2deg);
}

.frame {
display: inline-block;
-webkit-transform: rotate(-2deg);
-moz-transform: rotate(-2deg);
position: relative;
width: 289px;
height: 289px;
margin: 18px 0 0 20px;
padding: 10px 0 0 10px;
float: left;
}

.frame:before {
position: absolute;
display: block;
content: "";
top: 0;
left: 0;
width: 100%;
height: 100%;
padding: 7px;
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.3);
background: #fff;
z-index: -1;
}

.frame:after {
position: absolute;
display: block;
content: "";
top: 0;
left: 0;
width: 100%;
height: 100%;
padding: 7px;
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.3);
-webkit-transform: rotate(-2deg); /* 回転させる */
-moz-transform: rotate(-2deg);
background: #fff;
z-index: -1;
}

作るポイント

  • box-shadow
  • transform
  • :before , :afterなどの疑似クラス
  • ベンダープリフィックス(今回はtransformのみ)

参考にしたサイト

今回はこちらのサイトを参考にして制作しました。
CSS3を使ってできる画像まわりのエフェクトやスタイリング18 | Webロケッツマガジン

関連している記事

著者について

森田 かすみ

有限会社アップルップル所属。マークアップエンジニア→インハウスデザイナーの経歴を経て、今はUI/UX/サービスデザインを勉強中。呼ばれれば登壇もします。Frontend Nagoya主催。ストレス発散方法はかっぱのイラストを描くこと。