今まで「transition」や「boader-radius」等を紹介してきました。
こんな感じにドロップシャドウ(影)を付けてみました。
今回は前回「boader-radius」を使って角丸にした部分に影を入れてみようと思います。
ということで、まずは前回の復習も含めてソースを表示。
div#sub {おそらく3カラムとの絡みだと思うのですが自分がベースとして使っているライブドアブログのテンプレートでは2カラムにしたときにID="sub"とID="extra"とを縦に重ねるという方法をとっているんです。
/* ここ中略 */
border-radius:10px 10px 0px 0px;
}
div#extra {
/* ここ中略 */
border-radius:0px 0px 10px 10px;
}
したがって、それぞれ上の部分のみ角丸、下の部分のみ角丸としたのが上の表記となっています。
で、ここにbox-shadowプロパティを書き加えてあげます。
box-shadowプロパティは以下の様な書き方をします。
box-shadow: 5px 5px 5px 5px rgba(0,0,0,0.4) inset;それぞれ、左から「水平方向の距離」「垂直方向の距離」「ぼかしの距離」「広がりの距離」「影の色」「影の方向」となります。
この中で必須なのは「水平方向の距離」「垂直方向の距離」です。
影の色にはRGBに透明度(アルファ)を加えたRGBA表記を使っています。
□ rgba()−CSS3リファレンス
RGBA表記は「rgba(レッド,グリーン,ブルー,透明度)」といった表記で色は0〜255、透明度は0〜1の間の少数で指定します。
最後のinsetは記述すると内向きの影になります。
今回は以下の様な記述になりました。
box-shadow: 5px 5px 5px rgba(0,0,0,0.4);ということで、これを2つのDIVに書き込んであげれば終了。
div#sub {となるはずだったのですが。。
/* ここ中略 */
border-radius:10px 10px 0px 0px;
box-shadow: 5px 5px 5px rgba(0,0,0,0.4); }
div#extra {
/* ここ中略 */
border-radius:0px 0px 10px 10px;
box-shadow: 5px 5px 5px rgba(0,0,0,0.4); }
予想はしていたのですが、二つのDIVの境目に影が。。
z-indexを使って前後関係を入れ替えたりもしてみましたがダメでした。
で、最終的にはちょっと手間がかかりましたが二つのDIVを一つのDIVで囲ってそちらにid="kage"とし、
以下のように書いてあげることで対応しました。
div#kage { background-color: #EBEBEB; border-radius:10px; box-shadow: 5px 5px 5px rgba(0,0,0,0.4); }boader-radiusも4辺が一緒なので一つの数値で良くなりました。。
最初からCSS3が使えればもっとシンプルに書けたかもしれませんね。
参考) box-shadow−CSS3リファレンス / rgba()−CSS3リファレンス