.hako { width: 80%; height:150px; margin: 30px auto; background: -webkit-gradient(linear,left top,left bottom, color-stop(0.82,#f2f19b),color-stop(0.47,#d5def6),color-stop(0.16,#ddd)); background: -webkit-linear-gradient(top,#ddd 16%, #d5def6 47%, #f2f19b 82%); background: -moz-linear-gradient(top,#ddd 16%, #d5def6 47%, #f2f19b 82%); background: -o-linear-gradient(top,#ddd 16%, #d5def6 47%, #f2f19b 82%); background: -ms-linear-gradient(top,#ddd 16%, #d5def6 47%, #f2f19b 82%); background: linear-gradient(top,#ddd 16%, #d5def6 47%, #f2f19b 82%); } .hako p{ text-align:center; font-size: large; position: relative; top: 50px; }
.kouka1{ -webkit-box-shadow: 0 10px 6px -6px #555; -moz-box-shadow: 0 10px 6px -6px #555; box-shadow: 0 10px 6px -6px #555; }
下だけに影を付けました
どうですか?
.kouka2 { position: relative; } .kouka2:before, .kouka2:after { z-index: -1; position: absolute; content: ""; bottom: 15px; left: 10px; width: 50%; top: 80%; max-width:300px; background: #777; -webkit-box-shadow: 0 15px 10px #777; -moz-box-shadow: 0 15px 10px #777; box-shadow: 0 15px 10px #777; -webkit-transform: rotate(-3deg); -moz-transform: rotate(-3deg); -o-transform: rotate(-3deg); -ms-transform: rotate(-3deg); transform: rotate(-3deg); } .kouka2:after { -webkit-transform: rotate(3deg); -moz-transform: rotate(3deg); -o-transform: rotate(3deg); -ms-transform: rotate(3deg); transform: rotate(3deg); right: 10px; left: auto; }
よくあるやつです
.kouka3 { position:relative; -webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset; -moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset; box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset; } .kouka3:before, .kouka3:after { content:""; position:absolute; z-index:-1; -webkit-box-shadow:0 0 20px rgba(0,0,0,0.8); -moz-box-shadow:0 0 20px rgba(0,0,0,0.8); box-shadow:0 0 20px rgba(0,0,0,0.8); top:0; bottom:0; left:10px; right:10px; -moz-border-radius:100px / 10px; border-radius:100px / 10px; } .kouka3:after { right:10px; left:auto; -webkit-transform:skew(8deg) rotate(3deg); -moz-transform:skew(8deg) rotate(3deg); -ms-transform:skew(8deg) rotate(3deg); -o-transform:skew(8deg) rotate(3deg); transform:skew(8deg) rotate(3deg); }
こんなものもあります。
box-shadowを使った効果にはいろいろなものがあります。ネットで検索するといろいろおもしろいものが出てきます。
box-shadowの書式は box-shadow: (a)px (b)px (c)px (d)px #(eee);
(a)右方向へずらす距離
(b)下方向へずらす距離
(c)ぼかす範囲
(d)拡張させる範囲
#(eee)影の色 です。
右方向にずらす距離に負の値を持ってくると、左方向にずらす距離になります。
また、下方向へずらす距離に負の値を持ってくると、上方向にずらす距離になります。
拡張させる距離を負にすると、縮小させる距離になります。
ぼかす範囲と拡張させる距離は省略可能です。
また、insetを指定すると、影はボックスの内側に表示されます。
下だけに影を付けました
どうですか?
よくあるやつです。これは、div要素のhakoの下にkouka2というものを置き、そのkouka2にbefore、after疑似要素を用いて新しい要素を作ります。これには、またbox-shadowで影を付けて、その影がhakoの下に現れるようにするのですが、ちょっとだけ現れるように、transformのrotateを使って回転させます。また、このままでは、hakoの上にkouka2の要素が現れてしまいますので、順序を下にするために、z-index:-1を加えて1つ下にします。
と、これでいいかと思ったのですが、なぜかkouka2の要素が出てこない。おかしいと思って、hakoの要素にz-index:5くらいを指定してみたら、今度はkouka2の要素が上に現れて下に行かない。いろいろと原因を探していたら、こちらで、原因が究明されていました。このページは、hako要素は、実は更に上にdiv要素があり、それにz-indexが書かれていないと、「祖先にz-indexが指定された要素を持たない要素は、上の要素が生成したZ軸を用いて上下関係を決めます。また、この軸上での上の要素のz-indexの初期値は0であるため、z-indexに負の値を指定した要素は上の要素の下に回ってしまい、見えなくなってしまう」ということです。
よくあるやつです
こんなものもあります。