Vextor-ltd
@Vextor-ltd
Webdeveloper

Почему SVG с вложенным PNG внутри не отображается в Safari?

Вопрос простой, но я не могу найти на него ответ.
SVG отображается везде кроме Safari.
Вот SVG:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
viewBox="0 0 1600 1050"
 xmlns:xlink="http://www.w3.org/1999/xlink">
 <defs>
  <style type="text/css">
   <![CDATA[
    .fil0 {fill:#86776F}
    .fil1 {fill:#FEFEFE;fill-rule:nonzero}
   ]]>
  </style>
 </defs>
 <g id="turbocharger">
  <metadata id="CorelCorpID_0Corel-Layer"/>
  <g style="clip-path:url(#id0)">
   <image id="turbo_bg" x="64.88" y="138.17" width="1436.25" height="791.66" xlink:href="/img/turbocharger/turbo_charger.png"/>
  </g>
  <g style="clip-path:url(#id1)">
   <image id="turbo_fire" x="56" y="212.69" width="723" height="387" xlink:href="/img/turbocharger/turbo_fire.png"/>
  </g>  
  <g style="clip-path:url(#id2)">
   <image id="turbo_banknote" x="782.74" y="348.04" width="416" height="199" xlink:href="/img/turbocharger/turbo_2000.png"/>
  </g>
  <g style="clip-path:url(#id3)">
   <image id="turbo_charger" x="0" y="0" width="1600" height="1050" xlink:href="/img/turbocharger/turbo_charger.png"/>
  </g>
  <path id="push_text" class="fil0" d="M454.37 etc."/>
  <g id="turbo_exhaust">
    <path id="turbo_exhaust-short" class="fil0" d="M1198.8 99.6c-0.71,-7.71 5.29,-13.23 9.42,-18.93 -3.36,17.64 -2.42,35.89 2.9,53.08 5.77,19.96 11.87,43.18 -0.61,62.02 5.83,-33.06 -11.87,-63.57 -11.71,-96.17l0 0z"/>
    <path id="turbo_exhaust-long" class="fil0" d="M1237.31 115.01c13.28,28.9 25.96,63.18 12.99,94.43 -6.48,18.32 -24.83,28.83 -31.67,46.95 -5.28,10.07 -2.48,21.55 0.26,31.93 -8.7,-11.64 -15.32,-26.7 -8.8,-41.02 6.93,-26.38 33.64,-43.79 34.47,-72.14 1.36,-20.35 -4.54,-40.15 -7.25,-60.15l0 0z"/>
   </g>
  <g style="clip-path:url(#id4)">
   <image id="turbo_propeller" x="1151.22" y="543.1" width="227" height="227" xlink:href="/img/turbocharger/turbo_propeller.png"/>
  </g>
 </g>
</svg>


Я исправил `href` на `xlink:href`.
В добавил строку:
<meta http-equiv="Content-Type" content="application/xhtml+xml">


И всё равно в Safari не отображается.
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
IvanU7n
@IvanU7n
ЕМНИП по соображениями безопасности, если svg вставлен через неинтерактивный контекст (типа <img> или background-image:), то этот самый svg должен быть self-contained, т.е. не должен зависеть от внешних источников

где про это почитать не знаю, но помню, что при чтении в багзиле webkit-а обсуждения фикса для какого-то связанного с svg бага встретил упоминание про такое поведение
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Можно png преобразвать в векторную картинку. И будет такая нативная интеграция. SVG внутри SVG.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы