Примечание xlink:href
было устарело , просто используйте href
, например,
<svg viewBox="0 0 512 512">
<image width="512" height="512" href="external.svg"/>
</svg>
viewBox
, width
и height
значения (в этом ответе) просто для наглядности, соответственно измените компоновку ( читать дальше ).
Поскольку <image>
имеет аналогичные спецификации как <img>
, то есть это не так• Поддержка стилей SVG, как указано в ответе Кристиана .Например, если у меня есть следующая строка css, в которой цвет фигуры svg совпадает с цветом шрифта,
svg {
fill: currentColor;
}
Приведенный выше стиль не будет применяться, если используется <image>
.Для этого вам нужно использовать <use>
, как показано в ответ Ника .
Примечание * Значения id="layer1"
и href="OTHERFILE.svg#layer1"
в его ответе обязательны .
Это означает, что вы должны добавить атрибут id
во внешний файл svg, поэтому вам нужно разместить (измененный) внешний файл svg самостоятельно (на своем веб-сайте) или где-то еще.Полученный внешний svg-файл выглядит следующим образом (обратите внимание, где я поставил id
):
<svg id="logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path d="..."/>
</svg>
Значение id может быть любым, в этом примере я использую «логотип».
Чтобы встроить этот svg,
<svg viewBox="0 0 512 512">
<use href="edited-external.svg#logo"/>
</svg>
Если вы используете вышеупомянутый svg в качестве встроенного в html, вам не нужен атрибут xmlns (по крайней мере, то, что я знаю из svgo ).