[CSS]紙がふわりとする繊細なエフェクトをシンプルなHTMLで実装するテクニック

divで実装したパネルに紙がふわりとするようなエフェクトを与えるスタイルシートのテクニックを紹介します。

デモではパネル底の左右がふわりとなります。

デモのアニメーション

実際の動作は下記ページで確認できます。

デモのキャプチャ

Pure CSS Paper Lift Effect

実装は非常にシンプルです。

HTML

HTMLは、div一つだけです。

<div class="box"></div>

CSS

スタイルシートはベンダプレフィックスも含めてあるのでちょっと長いですが、コピペで利用できます。

body {
  margin: 0;
  padding: 0;
  background: #efefef;
}

.box {
  position: relative;
  margin: 40px auto;
  width: 400px;
  height: 350px;
  background: #fff;
  border-radius: 2px;
}

.box::before,
.box::after {
  content: '';
  position: absolute;
  bottom: 10px;
  width: 40%;
  height: 10px;
  box-shadow: 0 5px 14px rgba(0, 0, 0, 0.7);
  z-index: -1;
  -webkit-transition: all .3s ease-in-out;
          transition: all .3s ease-in-out;
}

.box::before {
  left: 15px;
  -webkit-transform: skew(-5deg) rotate(-5deg);
      -ms-transform: skew(-5deg) rotate(-5deg);
          transform: skew(-5deg) rotate(-5deg);
}

.box::after {
  right: 15px;
  -webkit-transform: skew(5deg) rotate(5deg);
      -ms-transform: skew(5deg) rotate(5deg);
          transform: skew(5deg) rotate(5deg);
}

.box:hover::before,
.box:hover::after {
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.4);
}

.box:hover::before {
  left: 5px;
}

.box:hover::after {
  right: 5px;
}

sponsors

top of page

©2018 coliss