gpt4 book ai didi

css - 如何仅在元素的一侧创建投影?

转载 作者:数据小太阳 更新时间:2023-10-29 09:05:17 25 4
gpt4 key购买 nike

有没有办法只在底部放置阴影?我有一个菜单,其中有 2 张图片彼此相邻。我不想要右阴影,因为它与右图像重叠。我不喜欢为此使用图像,所以有没有办法将它仅放在底部,如:

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

最佳答案

更新 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" class="box-shadow"></div>

更新 3

我之前的所有回答都使用额外的标记来创建这种效果,这不是必需的。我认为这是一个非常更清晰的解决方案...唯一的技巧是调整值以获得阴影的正确定位以及阴影的正确强度/不透明度。这是一个新的 fiddle ,使用 pseudo-elements :

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;

这将是一个更好的解决方案。添加的额外参数描述为:

The fourth length is a spreaddistance. Positive values cause theshadow shape to expand in alldirections by the specified radius.Negative values cause the shadow shapeto contract.

更新

在 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;

有关框阴影的更多信息,请查看以下内容:

关于css - 如何仅在元素的一侧创建投影?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5460129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com