更新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" ></div>更新3
我以前所有的答案都一直在使用额外的标记来创建此效果,而这并不是必需的。我认为这是一种 更
清洁的解决方案…唯一的窍门是使用值来获得阴影的正确位置以及阴影的正确强度/不透明度。
HTML
<div id="box" ></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的一个额外参数来完成此操作,正如其他所有人所指出的那样。这是演示:
CSS
-webkit-box-shadow: 0 4px 4px -2px #000000; -moz-box-shadow: 0 4px 4px -2px #000000; box-shadow: 0 4px 4px -2px #000000;
这将是一个更好的解决方案。添加的额外参数描述为:
第四长度是展开距离。正值会使阴影形状沿所有方向扩展指定的半径。负值会使阴影形状收缩。
更新
我所做的是创建一个“阴影元素”,该阴影元素将隐藏在您想要具有阴影的实际元素后面。我使“阴影元素”的宽度比实际元素的宽度小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;
我希望这有帮助。



