有没有办法让阴影只落在底部?我有一个菜单,两个图像彼此相邻。我不想要一个正确的阴影,因为它重叠了正确的图像。我不喜欢使用图像,所以有没有一种方法只把它放在底部,比如:

box-shadow-bottom: 10px #FFF;或类似的吗?

-moz-box-shadow: 0px 3px 3px #000;
-webkit-box-shadow: 0px 3px 3px #000;
box-shadow-bottom: 5px #000;
/* For IE 8 */
-ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#000000')";
/* For IE 5.5 - 7 */
filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=180, Color='#000000');

当前回答

最好是查影子:

.header{
    -webkit-box-shadow: 0 -8px 73px 0 rgba(0,0,0,0.2);
    -moz-box-shadow: 0 -8px 73px 0 rgba(0,0,0,0.2);
    box-shadow: 0 -8px 73px 0 rgba(0,0,0,0.2);
}

此代码目前在stackoverflow web上使用。

其他回答

更新别人的答案是透明的,而不是白色的,所以它也适用于其他颜色的背景。

身体{ 背景:url (http://s1.picswalls.com/wallpapers/2016/03/29/beautiful-nature-backgrounds_042320876_304.jpg) } div { 后台:url(https://www.w3schools.com/w3css/img_avatar3.png) center center; background-size:包含; 宽度:100 px; 身高:100 px; 保证金:50 px; 边框:5px纯白色; Box-shadow: 0px 0 rgba(0,0,0,0), 0px 0 rgba(0,0,0,0), 0 7px 7px -5px黑色; } < div > < / div >

如果你在背景上有一个固定的颜色,你可以用两个背景颜色相同的掩蔽阴影来隐藏侧影效果,并且blur = 0,示例:

box-shadow: 
    -6px 0 white,         /*Left masking shadow*/
    6px 0 white,          /*Right masking shadow*/
    0 7px 4px -3px black; /*The real (slim) shadow*/

注意,黑色阴影必须是最后一个,并且有一个负扩散(-3px),以防止它延伸到角落之外。

这里是小提琴(改变掩蔽阴影的颜色,看看它是如何工作的)。

div { 宽度:100 px; 身高:100 px; 边框:1px纯粉色; Box-shadow: -6px 0白色,6px 0白色,0 7px 5px -2px黑色; } < div > < / div >

只需使用扩散参数使阴影变小:

.shadow { -webkit-box-shadow: 0 6px 4px黑色; -moz-box-shadow: 0 6px 4px黑色; Box-shadow: 0 6px 4px -4px黑色; } <div class="shadow">一些内容</div>

现场演示:http://dabblet.com/gist/a8f8ba527f5cff607327

为了在两侧看不到任何阴影,扩展半径(第4个参数)的绝对值需要与模糊半径(第3个参数)相同。

如何只是使用一个包含div溢出设置为隐藏和一些填充在底部?这似乎是最简单的解决方案。

很抱歉,我自己没有想到这一点,但在其他地方看到了。

使用一个元素来包装元素,获得box-shadow和overflow:隐藏在包装中,您可以使额外的box-shadow消失,仍然有可用的边界。 这也解决了元素看起来较小的问题,因为扩散。 是这样的: #包装{填充底部:10px;溢出:隐藏;} #elem {box-shadow: 0 0 10px黑色;} 内容在这里 当它必须在纯CSS中完成时,仍然是一个聪明的解决方案!

正如Jorgen Evens所说。

你也可以使用clip-path来剪辑(隐藏)所有溢出的边,除了你想要显示的那条:

.shadow {
  box-shadow: 0 4px 4px black;
  clip-path: polygon(0 0, 100% 0, 100% 200%, 0 200%);
}

参见clip-path (MDN)。polygon的参数是左上点、右上点、右下点和左下点。通过将底部边缘设置为200%(或任何大于100%的数字),可以将溢出限制在底部边缘。

例子:

.shadow { box-shadow: 0 0 8px 5px rgba(200, 0, 0, 0.5); } .shadow-top { clip-path: polygon(0% -20%, 100% -20%, 100% 100%, 0% 100%); } .shadow-right { clip-path: polygon(0% 0%, 120% 0%, 120% 100%, 0% 100%); } .shadow-bottom { clip-path: polygon(0% 0%, 100% 0%, 100% 120%, 0% 120%); } .shadow-left { clip-path: polygon(-20% 0%, 100% 0%, 100% 100%, -20% 100%); } .shadow-bottom-right { clip-path: polygon(0% 0%, 120% 0%, 120% 120%, 0% 120%); } /* layout for example */ .box { display: inline-block; vertical-align: top; background: #338484; color: #fff; width: 4em; height: 2em; margin: 1em; padding: 1em; } <div class="box">none</div> <div class="box shadow shadow-all">all</div> <div class="box shadow shadow-top">top</div> <div class="box shadow shadow-right">right</div> <div class="box shadow shadow-bottom">bottom</div> <div class="box shadow shadow-left">left</div> <div class="box shadow shadow-bottom-right">bottom right</div>