Hinweis xlink:href
ist veraltet , verwenden Sie href
stattdessen stattdessen z
<svg viewBox="0 0 512 512">
<image width="512" height="512" href="external.svg"/>
</svg>
viewBox
, width
Und height
Werte (in dieser Antwort) sind nur für Illustrationszwecke, stellen Sie das Layout entsprechend ( mehr lesen ).
Da es <image>
ähnliche Spezifikationen wie hat <img>
, was bedeutet, dass es das SVG-Styling nicht unterstützt, wie in Christiaans Antwort erwähnt . Wenn ich zum Beispiel die folgende CSS-Zeile habe, in der die Farbe der SVG-Form der Schriftfarbe entspricht,
svg {
fill: currentColor;
}
Der obige Stil würde nicht gelten, wenn er <image>
verwendet wird. Dafür müssen Sie verwenden <use>
, wie in Nicks Antwort gezeigt .
Anmerkung id="layer1"
und href="OTHERFILE.svg#layer1"
Werte in seiner Antwort sind obligatorisch .
Das heißt, Sie müssen das id
Attribut zur externen SVG-Datei hinzufügen , sodass Sie die (geänderte) externe SVG-Datei selbst (auf Ihrer Website) oder an einer anderen Stelle hosten müssen. Die resultierende externe SVG-Datei sieht folgendermaßen aus (beachten Sie, wo ich die abgelegt habe id
):
<svg id="logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path d="..."/>
</svg>
Der Wert von id kann beliebig sein, ich verwende in diesem Beispiel "logo".
Um dieses SVG einzubetten,
<svg viewBox="0 0 512 512">
<use href="edited-external.svg#logo"/>
</svg>
Wenn Sie das obige svg als Inline in Ihrem HTML verwenden, benötigen Sie kein xmlns-Attribut (zumindest was ich von svgo weiß ).