更新4
与第三次更新相同,但使用现代的css (=更少的规则),因此不需要在伪元素上进行特殊定位。
(Original Answer: "最初的回答")
#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
我之前的回答都使用了额外的标记来创建这个效果,其实并不一定需要。我认为这是一个更加简洁的解决方案...唯一的诀窍就是通过调整值来获得阴影的正确位置以及阴影的强度/不透明度。这里有一个新的fiddle,使用伪元素:
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
显然,你可以通过在box-shadow 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;
这将是一个更好的解决方案。添加的额外参数描述如下:
第四个长度是扩展距离。正值会导致阴影形状在指定半径内向所有方向扩展,负值会导致阴影形状收缩。
更新
请查看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;
}
最初的回答
是的,您可以使用提供的相同语法来实现此操作。第一个值控制水平定位,第二个值控制垂直定位。因此,请按如下方式将第一个值设置为0px
,将第二个值设置为所需的任意偏移量:
-webkit-box-shadow: 0px 5px #000000;
-moz-box-shadow: 0px 5px #000000;
box-shadow: 0px 5px #000000;
更多关于盒子阴影的信息,请查看以下链接:
注意:本文保留了HTML标签。
box-shadow-bottom
,但这个属性并不存在,并且也没有被任何人支持。请参见http://nicolasgallagher.com/css-drop-shadows-without-images/demo/以获取合法的投影技术。 - Paul Irishfilter
在IE8和IE9中也可以工作。在这种情况下不需要使用-ms-filter
。 - Mathias Bynens