Notatka xlink:href
została wycofana , po prostu użyj href
zamiast niej, np
<svg viewBox="0 0 512 512">
<image width="512" height="512" href="external.svg"/>
</svg>
viewBox
, width
a height
wartości (w tej odpowiedzi) służą jedynie celom ilustracyjnym, odpowiednio dostosuj układ ( czytaj więcej ).
Od <image>
akcji podobnej specyfikacji , co <img>
, co oznacza, że nie obsługuje SVG stylizacji, jak wspomniano w odpowiedzi Christiaan użytkownika . Na przykład, jeśli mam następującą linię css, która ustawia kolor kształtu svg na taki sam jak kolor czcionki,
svg {
fill: currentColor;
}
Powyższy styl nie miałby zastosowania, gdyby <image>
został użyty. W tym celu musisz użyć <use>
, jak pokazano w odpowiedzi Nicka .
Uwaga id="layer1"
i href="OTHERFILE.svg#layer1"
wartości w jego odpowiedzi są obowiązkowe .
Oznacza to, że musisz dodać id
atrybut do zewnętrznego pliku svg, więc musisz hostować (zmodyfikowany) zewnętrzny plik svg samodzielnie (twoja strona internetowa) lub gdzie indziej. Wynikowy zewnętrzny plik SVG wygląda następująco (zwróć uwagę, gdzie umieściłem id
):
<svg id="logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path d="..."/>
</svg>
Wartość id może być dowolna, w tym przykładzie używam „logo”.
Aby osadzić ten plik svg,
<svg viewBox="0 0 512 512">
<use href="edited-external.svg#logo"/>
</svg>
Jeśli używasz powyższego svg jako wbudowanego w swoim html, nie potrzebujesz atrybutu xmlns (przynajmniej tego, co wiem z svgo ).