Как указано rx2347 , IE не поддерживает CSS Эффекты фильтра
Таким образом, единственный способ добавить тень - применить эффект внутри вашего SVG с помощью размытого черного многоугольника, расположенного за изображением.
Это обновленная версия вашего кодекса с примененным эффектом https://codepen.io/samwalker/pen/XWbzpZX
Я не у меня не было ПК / 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 IE совместимые фильтры
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
color и 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>