スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

CSS3でドロップシャドウを効果的につける方法

画像の下部に影をつけて紙がめくれているような効果をつけることがありますが、これをCSS3で実現する方法が紹介されていたので試してみました。

ボックスの両サイドにドロップシャドウを設定して、
紙がめくれたような効果をつけてみる

ソースコードはこんな感じです。

#dropshadow_container {
  position: relative;
  z-index: 0;
}
.dropshadow {
  position: relative;
  width: 450px;
  height: 200px;
  margin: 20px auto;
  padding: 1.5em;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  background: #ccc;
  text-shadow: 0 1px 0 #fff;
  text-align: center;
  line-height: 1.5;
}
.dropshadow:before, .dropshadow:after {
  position: absolute;
  content: "";
  width: 50%;
  height: 20%;
  bottom: 15px;
  background: rgba(0, 0, 0, 0.7);
  -webkit-box-shadow: 0 15px 10px rgba(0,0,0, 0.7);
  -moz-box-shadow: 0 15px 10px rgba(0, 0, 0, 0.7);
  box-shadow: 0 15px 10px rgba(0, 0, 0, 0.7);
  z-index: -1;
}
.dropshadow:after {
  left: auto;
  right: 10px;
  -webkit-transform: rotate(3deg);
  -moz-transform: rotate(3deg);
}
.dropshadow:before {
  left: 10px;
  right: auto;
  -webkit-transform: rotate(-3deg);
  -moz-transform: rotate(-3deg);
}

<div id="dropshadow_container">
  <div class="dropshadow">
    <p>ボックスの両サイドにドロップシャドウを設定して、
紙がめくれたような効果をつけてみる</p>
  </div>
</div>

ポイントは、影をつける要素に :before :after の擬似要素で box-shadow プロパティを設定することです。そして、:before :after それぞれを transformプロパティで傾けています。注意点は影をつける要素がブロック要素であること(display: block;をつけても可)と、position: relative; を設定して z-index で重なり順を調整することでしょうか。

CSS3のプロパティを使用しているので、IEでは反映されません。

SafariやChrome、Firefoxではすごくいい感じに見えるので、IE8だけでも対策して使ってみたいです。

Drop Shadows with CSS3

ボックス内のテキストにつけているテキストシャドウについてはこちらもどうぞ。

新しい記事

ピックアップ

Related Posts Plugin for WordPress, Blogger...
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。