Я пытаюсь создать закругленную градиентную границу, где содержимое может быть прозрачным. Это исключает стандартные подходы размещения элемента градиента фона под содержимым. Другое требование заключается в том, что он работает вплоть до IE11 и Edge 44 / Edge HTML 18.
. Это прекрасно работает в Chrome / Firefox / Safari, но Microsoft не нравится CSS путь клипа, ссылающийся на Идентификатор SVG: https://jsfiddle.net/jfowu0xn/1/
<svg>
<defs>
<clipPath id="datClip">
<path d="M50,0 h400 a50,50 0 0 1 50,50 v0 a50,50 0 0 1 -50,50 h-400 a50,50 0 0 1 -50,-50 v0 a50,50 0 0 1 50,-50 M50,10 a40,40 0 0 0 -40,40 v0 a40,40 0 0 0 40,40 h400 a40,40 0 0 0 40,-40 v0 a40,40 0 0 0 -40,-40 h-400 z" />
</clipPath>
</defs>
</svg>
...
-webkit-clip-path: url(#datClip);
clip-path: url(#datClip);
...
Единственное, что я могу выяснить, что работает до IE11 - это поместить градиент в SVG, кодировать base64 и шлепнуть его в качестве фонового изображения. Это не работает в Chrome, хотя, ха-ха: https://jsfiddle.net/7Lhosj53/
SVG зависит от ширины, высоты и градиента, и я пишу каркас пользовательского интерфейса, поэтому каждая комбинация этих все это еще ~ 800 байт SVG на странице. Тьфу.
Есть ли что-нибудь лучше без base64? Есть ли что-то без всего этого дублирования?
Спасибо!