Nota xlink:href
foi descontinuada , basta usar em seu href
lugar, por exemplo
<svg viewBox="0 0 512 512">
<image width="512" height="512" href="external.svg"/>
</svg>
viewBox
, width
e os height
valores (nesta resposta) são apenas para fins ilustrativos, ajuste o layout de acordo ( leia mais ).
Desde <image>
ações especificação semelhante como <img>
, o que significa que não suporta SVG styling, conforme mencionado na resposta de Christiaan . Por exemplo, se eu tiver a seguinte linha css que define a cor da forma svg para ser igual à cor da fonte,
svg {
fill: currentColor;
}
O estilo acima não se aplicaria se <image>
fosse usado. Para isso, você precisa usar <use>
, conforme mostrado na resposta de Nick .
Nota id="layer1"
e href="OTHERFILE.svg#layer1"
valores em sua resposta são obrigatórios .
Significa que você tem que adicionar o id
atributo ao arquivo svg externo, então você precisa hospedar o arquivo svg externo (modificado) por você (seu site) ou em outro lugar. O arquivo svg externo resultante tem a seguinte aparência (observe onde coloquei o id
):
<svg id="logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path d="..."/>
</svg>
O valor de id pode ser qualquer coisa, eu uso "logo" neste exemplo.
Para incorporar esse svg,
<svg viewBox="0 0 512 512">
<use href="edited-external.svg#logo"/>
</svg>
Se você usar o svg acima como embutido em seu html, você não precisa do atributo xmlns (pelo menos o que eu sei do svgo ).