Есть svg градиент, который применяется на всех страницах сайта:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="0" height="0" style="position: absolute;" xml:base="">
<defs>
<radialgradient cx="19.111" cy="128.444" gradientunits="userSpaceOnUse" id="instagram-gradient" r="163.552">
<stop offset="0" stop-color="#ffb140"/><stop offset=".256" stop-color="#ff5445"/>
<stop offset=".599" stop-color="#fc2b82"/><stop offset="1" stop-color="#8e40b7"/>
</radialgradient>
</defs>
далее его применяю на USE
<svg><use xlink:href="#sprite-in" fill="url(#instagram-gradient)"/></svg>
Но если на странице присутствует тег <base> то градиент работает только на главной странице. На внутренних градиент теряется.
Эта проблема наблюдается в Safari (десктоп/мобайл), в хроме все ок.
Сталкивался кто нибудь с таким?
Одной из причин отказа работоспособности градиента может быть:
stop offset=".599" в долях от
единицы, поэтому gradientunits должен иметь значение -
gradientunits= "objectBoundingBox" или не указывать, так как это
значение по умолчанию. Попробуйте добавить фрагмент кода с градиентом через <object>
<object type="image/svg+xml" data="images/svgdefs.svg">
Your browser does not support SVG
</object>
Далее вызываете градиент по ID
<svg class="inline-svg-icon">
<use xlink:href="svgdefs.svg#instagram-gradient"></use>
</svg>
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости