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

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');

当前回答

如果你的背景是实心的(或者你可以使用CSS重现它),你可以这样使用线性渐变:

div { 背景-图像:线性梯度(到顶部,rgba(0,0,0,0) 0%, rgba(0,0,0,0.3) 5px, #fff 5px, #fff 100%) } < div > < p > Foobar < / p > < p > < / p >测试 < / div >

这将在元素底部生成5px的渐变,从不透明度30%的黑色到完全透明。元素的其余部分为白色背景。当然,改变线性渐变的最后2个色点,你可以使背景完全透明。

其他回答

你需要知道每个值是什么:

/* offset-x | offset-y | blur-radius | spread-radius | color */
box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2);

若要只在元素的一侧应用阴影效果,请将模糊值设置为正数,并将扩展值设置为相同大小,但带负号。根据你想要阴影在哪一边,设置偏移值如下:

顶部阴影:offset-x: 0和offset-y: -5px 右阴影:偏移-x: 5px和偏移-y: 0 底部阴影:偏移-x: 0和偏移-y: 5px 左阴影:偏移-x: -5px和偏移-y: 0

.box{ margin: 2rem; padding: 1rem; } .shadow-all{ box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2); } .shadow-top { box-shadow: 0 -5px 3px -3px #00000030; } .shadow-right { box-shadow: 5px 0 3px -3px #00000030; } .shadow-bottom { box-shadow: 0 5px 3px -3px #00000030; } .shadow-left { box-shadow: -5px 0 3px -3px #00000030; } <div class="box shadow-all"> Shadow All </div> <div class ="box shadow-top"> Shadow Top </div> <div class ="box shadow-right"> Shadow Right </div> <div class ="box shadow-bottom"> Shadow Bottom </div> <div class ="box shadow-left"> Shadow left </div>

在这里和这里阅读更多

阅读说明书总是好的。没有box-shadow-bottom属性,就像Lea指出的,你应该总是把没有前缀的属性放在底部,放在有前缀的属性之后。

所以它是:

.shadow { -webkit-box-shadow: 0px 2px 4px #000000; -moz-box-shadow: 0px 2px 4px #000000; Box-shadow: 0px 2px 4px #000000; } <div class="shadow">一些内容</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个参数)相同。

这支代码笔(不是我写的)演示了一种超级简单的方法,其他的边都非常漂亮:

box-shadow: 0 5px 5px -5px #333;

https://codepen.io/zeckdude/pen/oxywmm

你也可以在底部做一个渐变——这对我很有帮助,因为我想要的阴影是在一个已经是半透明的元素上,所以我不必担心任何剪辑:

&:after {
      content:"";
      width:100%;
      height: 8px;
      position: absolute;
      bottom: -8px;
      left: 0;
      background: linear-gradient(to bottom, rgba(0,0,0,0.65) 0%,rgba(0,0,0,0) 100%);
    }

只需使“bottom”和“height”属性匹配,并设置你的rgba值为任何你想要它们在阴影的顶部/底部