SVG-путь (эллипс), заполнение изображением не работает (кроме Chrome на MacOS) - PullRequest
0 голосов
/ 27 июня 2018

Создан простой SVG с эллипсом. Я хочу, чтобы этот эллипс наполнился внешним изображением. Он показывает ОК в Chrome на MacOS, но ни на одном другом агенте. Что случилось ? Здесь искали много других вопросов, но, кажется, ни один из них не помог.

Codepen

<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
	 x="100px" y="100px" viewBox="0 0 177.5 175" xml:space="preserve">
<defs>
    <pattern id="image" x="0" y="0" patternUnits="userSpaceOnUse" height="200" width="200">
      <image x="100" y="1000" xlink:href="http://i.imgur.com/7Nlcay7.jpg"></image>
    </pattern>
  </defs>
  
 <ellipse id="FillThisWithColorOrPattern" style="fill:url(#image)" stroke="#333333" stroke-miterlimit="10" cx="90" cy="87" rx="87.5" ry="82"/>
<circle id="Inner_1_" fill="#FF0000" cx="90" cy="87" r="35"/>
	<path id="TextLine1_Path" fill=None        
	 d="M90,137.5c-27.8,0-50.5-22.7-50.5-50.5S62.2,36.5,90,36.5s50.5,22.7,50.5,50.5S117.8,137.5,90,137.5z M90,37.5
		c-27.3,0-49.5,22.2-49.5,49.5s22.2,49.5,49.5,49.5c27.3,0,49.5-22.2,49.5-49.5S117.3,37.5,90,37.5z"/>
   <text>
    <textPath xlink:href="#TextLine1_Path">
      The quick brown fox jumps over the lazy dog.
    </textPath>
  </text>
</svg>

1 Ответ

0 голосов
/ 27 июня 2018

Кажется, что вы должны указать ширину и высоту изображения для других браузеров. Я попытался с Firefox 58 и Safari 11 на MacOS, и шаблон есть.

<image x="0" y="0" xlink:href="http://i.imgur.com/7Nlcay7.jpg" width="200" height="200"/>

Вот ваш обновленный пример: https://codepen.io/anon/pen/RJeMda

Кроме того, обратите внимание, что xlink:href устарела после SVG 2. Теперь вы должны использовать href. Документ MDN добавляет:

Для браузеров, реализующих href, если заданы как href, так и xlink: href, xlink: href будет игнорироваться и будет использоваться только href.

...