有没有办法只在底部放下阴影?我有一个菜单,旁边有两张图片 . 我不想要一个正确的阴影,因为它与正确的图像重叠 . 我不喜欢使用图像,所以有没有办法将它放在底部,如:
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');
11 回答
更新4
与更新3相同,但使用现代css(=较少的规则),因此不需要对伪元素进行特殊定位 .
更新3
我以前的所有答案都使用额外的标记来创建这种效果,这不一定是必需的 . 我认为这是一个更清洁的解决方案......唯一的诀窍就是利用这些值来获得阴影的正确定位以及阴影的正确强度/不透明度 . 这是一个新的小提琴,使用pseudo-elements:
http://jsfiddle.net/UnsungHero97/ARRRZ/2/
HTML
CSS
更新2
显然,您可以使用box-shadow CSS的额外参数来执行此操作,正如其他人刚刚指出的那样 . 这是演示:
http://jsfiddle.net/K88H9/821/
CSS
这将是一个更好的解决方案 . 添加的额外参数描述为:
更新
看看jsFiddle上的演示:http://jsfiddle.net/K88H9/4/
我所做的是创建一个“阴影元素”,隐藏在你想要有阴影的实际元素后面 . 我使“阴影元素”的宽度与实际元素的宽度相差不超过指定阴影的2倍;然后我正确对齐它 .
HTML
CSS
原始答案
是的,您可以使用您提供的相同语法执行此操作 . 第一个值控制水平定位,第二个值控制垂直定位 . 所以只需将第一个值设置为
0px
,将第二个值设置为您想要的任何偏移量,如下所示:有关框阴影的更多信息,请查看以下内容:
http://www.css3.info/preview/box-shadow/
https://developer.mozilla.org/en/css/-moz-box-shadow#Browser_compatibility
http://www.w3.org/TR/css3-background/#the-box-shadow
我希望这有帮助 .
只需使用spread参数使阴影变小:
现场演示:http://dabblet.com/gist/a8f8ba527f5cff607327
为了看不到侧面的任何阴影,扩散半径(第4个参数)的(绝对值)需要与模糊半径(第3个参数)相同 .
如果背景上有固定的颜色,则可以隐藏侧面阴影效果,其中两个 masking shadows 具有相同的背景颜色,模糊= 0,例如:
请注意,黑色阴影必须是最后一个,并且具有负展开(-3px),以防止它超出角落 .
这里是fiddle(更改遮罩阴影的颜色以查看它是如何工作的) .
阅读the specs总是更好 . 没有
box-shadow-bottom
属性,正如Lea指出的那样,你应该始终将未加前缀的属性放在底部,在前缀之后 .所以这是:
我想这就是你要追求的?
如何使用一个包含div的溢出设置为隐藏和底部的填充?这似乎是最简单的解决方案 .
很抱歉,我自己并没有想到这一点,但看到了somewhere else .
正如Jorgen Evens所说 .
我还需要一个阴影,但只在图像下面,并稍微向左和向右设置 . 这对我有用:
应用的元素是页面范围的图像(980px x 300px) .
如果在摆弄设置时有帮助,它们运行如下:
水平阴影,垂直阴影,模糊距离,传播(即阴影大小)和颜色 .
如果您的背景是实心的(或者您可以使用CSS重现它),您可以使用线性渐变:
这将在元素的底部生成5px渐变,从不透明度为30%的黑色到完全透明 . 元素的其余部分具有白色背景 . 当然,更改线性渐变的最后2个色标,可以使背景完全透明 .
最好查看阴影:
此代码当前正在stackoverflow web上使用 .
在别人身上更新他的回答透明的边而不是白色,所以它也适用于其他颜色的背景 .
内心的阴影