如何在11中显示与使用此规则在chrome中应用相同的阴影?
filter: drop-shadow(6px 6px 7px rgba(0,0,0,0.5));这是我的工作铬标记HTML
<div class="cta-image-container">
<div>
<svg class="svg-cta-image">
<image filter="url(#dropshadow)" width="640" height="580" class="cta-image cta-image-1-3" xlink:href="https://anekitalia.com/wp-content/uploads/media/justfun-viaggi-evento-viaggia-split.jpg"></image>
</svg>
</div>
<div>
<svg class="svg-cta-image">
<image width="640" height="580" class="cta-image cta-image-2-3" xlink:href="https://anekitalia.com/wp-content/uploads/media/justfun-viaggi-evento-viaggia-split.jpg"></image>
</svg>
</div>
<div>
<svg class="svg-cta-image">
<image width="640" height="580" class="cta-image cta-image-3-3" xlink:href="https://anekitalia.com/wp-content/uploads/media/justfun-viaggi-evento-viaggia-split.jpg"></image>
</svg>
</div>
<svg>
<defs>
<clipPath id="split-1-3">
<polygon points="222,580 0,580 0.12,0 176,0"></polygon>
</clipPath>
</defs>
</svg>
<svg>
<defs>
<clipPath id="split-2-3">
<polygon points="400,0 196,0 242,580 446,580"></polygon>
</clipPath>
</defs>
</svg>
<svg>
<defs>
<clipPath id="split-3-3">
<polygon points="640,0 420,0 466,580 640,580"></polygon>
</clipPath>
</defs>
</svg>
这是CSS
.cta-image-container svg{
position: absolute;
}
.cta-image-container {
width: 640px;
height: 580px;
margin: 0 25px 0 25px;
filter: drop-shadow(6px 6px 7px rgba(0,0,0,0.5));
position: relative;
}
.cta-image {
max-width: 100%;
max-height: 100%;
position: absolute;
}
.svg-cta-image {
width: 640px;
height: 580px;
}
.cta-image-1-3 {
clip-path: url(#split-1-3);
}
.cta-image-2-3 {
clip-path: url(#split-2-3);
}
.cta-image-3-3 {
clip-path: url(#split-3-3);
}在这里您可以找到一个镀铬工作的CODEPEN
发布于 2020-03-06 22:34:02
正如rx2347所指出的,IE不支持CSS筛选效果。
因此,添加阴影的唯一方法是在svg中应用效果,使用位于图像后面的模糊的黑色多边形。
这是使用应用效果https://codepen.io/samwalker/pen/XWbzpZX更新代码的版本。
我没有PC/IE 11,所以我使用BrowserStack进行测试,结果如下:

备注:
1. --我不得不增加viewbox/svg的大小,这样阴影就不会被裁剪
<svg class="svg-cta-image" viewBox="0 0 660 600">
2.将feGaussianBlur创建为svg过滤器def。
<filter id="blurFilter">
<feGaussianBlur stdDeviation="5" />
<filter />“模糊大小”由stdDeviation攻击设置。
展示IE过滤器的一个很好的工具是手放在: SVG过滤效果,它是Azure网站的一部分&显示MS兼容过滤器
3.在SVG中创建了一个与剪辑路径相同的组元素,这是我们的“影子”。
<g id="shadow" fill="black" filter="url(#blurFilter)" fill-opacity="0.5">
<polygon points="222,580 10,580 10,10 176,10"></polygon>
<polygon points="400,10 196,10 242,580 446,580"></polygon>
<polygon points="640,10 420,10 466,580 640,580"></polygon>
</g>阴影的样式设置为fill颜色和fill-opacity。
我不得不用10px来抵消多边形的起始点,以匹配图像的新位置。
4.将3 polygons合并成一个单独的裁剪路径,所以您只需要加载一次图像。如果你要使用3种不同的图像,你可以很容易地改变这个回。
5.从svg框的边缘偏移图像,并重置它的大小x="10" y="10" width="640" height="580",您可能需要在css中这样做。
您可能会想要做一些更改,但希望这将使您走上正确的道路。
以下是完整标记:
.cta-image-container {
width: 660px;
height: 600px;
margin: 25px auto;
position: relative;
}<div class="cta-image-container">
<div>
<svg class="svg-cta-image" viewBox="0 0 660 600"><!-- increased veiwbox by 20px so shadow isn’t clipped -->
<defs xmlns="http://www.w3.org/2000/svg">
<clipPath id="split-in-3"><!-- combined clipping path -->
<polygon points="222,580 0,580 0.12,0 176,0"></polygon>
<polygon points="400,0 196,0 242,580 446,580"></polygon>
<polygon points="640,0 420,0 466,580 640,580"></polygon>
</clipPath>
<filter id="blurFilter">
<feGaussianBlur stdDeviation="5" /><!-- size of shadow -->
<filter />
</defs>
<g id="shadow" fill="black" filter="url(#blurFilter)" fill-opacity="0.5"><!-- `fill` & `fill-opacity` set the shadow’s color -->
<polygon points="222,580 10,580 10,10 176,10"></polygon><!--`0`s replaced by 10 to offset shadow from edge of svg -->
<polygon points="400,10 196,10 242,580 446,580"></polygon>
<polygon points="640,10 420,10 466,580 640,580"></polygon>
</g>
<image clip-path="url(#split-in-3)" x="10" y="10" width="640" height="580" class="cta-image cta-image-1-3" xlink:href="https://anekitalia.com/wp-content/uploads/media/justfun-viaggi-evento-viaggia-split.jpg"></image><!-- positioned at 10px `x` & `y` to offset from edge of svg --><!-- reset size to match original -->
</svg>
</div>
</div>
https://stackoverflow.com/questions/60569053
复制相似问题