アップデート4
更新3と同じですが、最新のCSS(=ルールが少ない)を使用しているため、疑似要素に特別な位置を指定する必要はありません。
#box {
background-color: #3D6AA2;
width: 160px;
height: 90px;
position: absolute;
top: calc(10% - 10px);
left: calc(50% - 80px);
}
.box-shadow:after {
content:"";
position:absolute;
width:100%;
bottom:1px;
z-index:-1;
transform:scale(.9);
box-shadow: 0px 0px 8px 2px #000000;
}
<div id="box" class="box-shadow"></div>
アップデート3
私の以前のすべての回答は、この効果を作成するために追加のマークアップを使用してきましたが、これは必ずしも必要ではありません。これははるかにクリーンな解決策だと思います...唯一のトリックは、シャドウの適切な配置とシャドウの適切な強度/不透明度を取得するために値をいじることです。これが、疑似要素を使用した新しいフィドルです。
http://jsfiddle.net/UnsungHero97/ARRRZ/2/
HTML
<div id="box" class="box-shadow"></div>
CSS
#box {
background-color: #3D6AA2;
width: 160px;
height: 90px;
margin-top: -45px;
margin-left: -80px;
position: absolute;
top: 50%;
left: 50%;
}
.box-shadow:after {
content: "";
width: 150px;
height: 1px;
margin-top: 88px;
margin-left: -75px;
display: block;
position: absolute;
left: 50%;
z-index: -1;
-webkit-box-shadow: 0px 0px 8px 2px #000000;
-moz-box-shadow: 0px 0px 8px 2px #000000;
box-shadow: 0px 0px 8px 2px #000000;
}
アップデート2
どうやら、他の誰もがちょうど指摘したように、ボックスシャドウCSSへの追加パラメーターだけでこれを行うことができます。ここにデモがあります:
http://jsfiddle.net/K88H9/821/
CSS
-webkit-box-shadow: 0 4px 4px -2px #000000;
-moz-box-shadow: 0 4px 4px -2px #000000;
box-shadow: 0 4px 4px -2px #000000;
これはより良い解決策です。追加される追加のパラメーターは、次のように記述されます。
4番目の長さは広がり距離です。正の値を指定すると、影の形状が指定した半径ですべての方向に拡大します。負の値を指定すると、影の形状が収縮します。
更新
jsFiddleでデモを確認してください:http ://jsfiddle.net/K88H9/4/
私がしたことは、あなたが影を付けたいと思うであろう実際の要素の後ろに隠れる「影要素」を作成することでした。「影要素」の幅を、実際の要素よりも指定した影の2倍だけ狭くしました。それから私はそれを適切に調整しました。
HTML
<div id="wrapper">
<div id="element"></div>
<div id="shadow"></div>
</div>
CSS
#wrapper {
width: 84px;
position: relative;
}
#element {
background-color: #3D668F;
height: 54px;
width: 100%;
position: relative;
z-index: 10;
}
#shadow {
background-color: #3D668F;
height: 8px;
width: 80px;
margin-left: -40px;
position: absolute;
bottom: 0px;
left: 50%;
z-index: 5;
-webkit-box-shadow: 0px 2px 4px #000000;
-moz-box-shadow: 0px 2px 4px #000000;
box-shadow: 0px 2px 4px #000000;
}
元の回答
はい、あなたが提供したのと同じ構文でこれを行うことができます。最初の値は水平位置を制御し、2番目の値は垂直位置を制御します。したがって、次のように、最初の値を0px
に、2番目の値を任意のオフセットに設定します。
-webkit-box-shadow: 0px 5px #000000;
-moz-box-shadow: 0px 5px #000000;
box-shadow: 0px 5px #000000;
ボックスシャドウの詳細については、以下を確認してください。
これがお役に立てば幸いです。
box-shadow-bottom
存在せず、誰もサポートしていない、承認済みの回答参照。合法的なボックスシャドウテクニックについては、nicolasgallagher.com / css - drop - shadows - without - images / demoを参照してください。