box-shadow: inset
状態:-
閲覧数:7,485
投稿日:2013-06-16
更新日:2016-01-13
.hoge{
box-shadow: inset 0px -4px 0px 0px #333333;
}
:after疑似要素でも利用可
.hoge:after{
box-shadow: inset 0px -15px 0px 0px #333333;
}
入れ子
・試していないけど、入れ子にする方法もあるみたい
<div>
<div style=”border-bottom:solid 4px #333333”>
二段構え
</div>
</div>
ボーダーでごまかす
導入経緯
・ボーダー嫌いなのに今回導入した理由は、それしか思いつかなかったから
困っていること
・画像を「rotate animation」する際、左下に「rotate」分の空きが生じる
やりたいこと
・この空きを見えなくなるようにしたい
background-position
案1
・空き分だけ、「rotate animation」対象画像の位置をずらせばよいのではないか?
結果は?
・「background-position」で、左上固定や、中央指定してもダメ
・「:after疑似要素」にも指定したけど、それでもダメ
→挫折
border
案2
・ボーダー敷いて、生じた「rotate」分の空きを誤魔化す
・実際に試してみたら、外側に線が引かれるため、空きが隠れない
→内側に線を引きたい
box-shadow
案3
・結局、この案を採用
・だけど、妥協案であることには違いない
・線で誤魔化さなくても、「rotate」分の空きを隠す方法は絶対あると思うんだけどなァー
「:after疑似要素」✕「box-shadow: inset」✕「半透明」
内側に半透明の線
.hoge:after{
box-shadow: inset 0px -10px 0px 0px rgba(255,0,255,0.4);
}
ボックスに半透明の影を付けるためには?
・box-shadowで色指定を行う際にrgba()を利用
・rgba()では色の不透明度を指定することが可能
・4番目のパラメータに不透明度を指定すれば半透明の影を表示することができる
・透明度は、0(完全に透明)~1(完全に不透明)の数値で指定
RBGA
赤 (Red)、緑 (Green)、青 (Blue)、アルファチャンネル (Alpha) の略
RGBA値の指定では、RGB値の指定とは異なり #FFFFFF のような16進表記を使用することはできない
▼上記CSS一部抜粋
・「magenta #ff00ff」色に対して、透明度0.4指定
rgba(255,0,255,0.4);