任何方法得到盒影在左和右(水平?)边只有没有黑客或图像。我正在使用:

box-shadow: 0 0 15px 5px rgba(31, 73, 125, 0.8);

但周围都是阴影。

我在元素周围没有边界。


当前回答

你可以在里面使用一个div来“擦除”阴影:

.yourdiv{
    position:relative;
    width:400px;
    height:400px;
    left:10px;
    top:40px;
    background-color:white;
    box-shadow: 0px 0px 1px 0.5px #5F5F5F;

}
.erase{
    position:absolute;
    width:100%;
    top:50%;
    height:105%;
    transform:translate(0%,-50%);
    background-color:white;
}

你可以使用“高度:%;”和“宽度:%;”来删除你想要的阴影。

其他回答

试试这个,对我很管用:

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

另一个想法可能是创建一个暗模糊的伪元素,最终与透明度模仿阴影。让它的高度稍低,宽度稍宽。

你可以在里面使用一个div来“擦除”阴影:

.yourdiv{
    position:relative;
    width:400px;
    height:400px;
    left:10px;
    top:40px;
    background-color:white;
    box-shadow: 0px 0px 1px 0.5px #5F5F5F;

}
.erase{
    position:absolute;
    width:100%;
    top:50%;
    height:105%;
    transform:translate(0%,-50%);
    background-color:white;
}

你可以使用“高度:%;”和“宽度:%;”来删除你想要的阴影。

另一种方法是使用overflow-y:隐藏在带有填充的父类上:

身体{ 填充:30 px; } #包装{ overflow-y:隐藏; 填充:0 10px; } #包装> div { 宽度:100 px; 身高:100 px; Box-shadow: 0 0 20px -5px红色; } < div id = " wrap " > < div > < / div > < / div >

负扩散和掩蔽阴影

CSS box-shadow使用4个参数:h-shadow, v-shadow, blur, spread:

box-shadow: 10px 0 8px -8px black;

模糊参数增加了渐变效果,但也增加了顶部和底部边界的阴影。为了消除这种副作用,我们可以使用:

负扩散减少了所有边界上的阴影:你可以尝试去除小的垂直阴影,而不影响侧面的阴影(对于小阴影更容易,5到10px)。 掩蔽与背景相同颜色的阴影(在本例中为白色),这允许出现标记阴影。注意,这个掩蔽阴影需要有blur = 0来完全覆盖副作用。

这里有两个例子,第二个使用掩蔽阴影:

div { 宽度:100 px; 身高:100 px; 边框:1px纯绿色; 保证金:10 px; 浮:左; } 例二号{ 盒子阴影:-10px 0 8px -8px黑色,10px 0 8px -8px黑色; } # example2 { 不必: 0 -6px白色, 0 6px白色, -7px 0 4px -3px黑色 7px 0 4px -3px黑色; } < div id = "例二" > < / div > < div id = " example2 " > < / div >


如果这些方法都不能满足您的需求,您还可以在任何现有div的旁边添加一个绝对div。

只需要记住将容器div设置为position: relative,这样绝对div就会留在里面。

#青年们{ 位置:相对; 宽度:100 px; 身高:100 px; 保证金:10 px; 边框:1px纯绿色; } .shadow { 位置:绝对的; 高度:100%; 宽度:4 px; 左:0 px; 上图:0 px; Box-shadow: -4px 0 3px黑色; } < div id = "青年们" > 内容在这里 < div class = "影子" > < / div > < / div >