
Ich möchte eine kleine SVG-Datei (erstellt mit Inkscape) nehmen und sie in eine andere (größere) einbetten oder verknüpfen. Bei der Anzeige in einem Browser hoffe ich, dass die kleinere Datei in einem Platzhalter der größeren angezeigt wird.
Ist es möglich?
Antwort1
Bevorzugen Sie <use>
dies <image>
, da letzteres mit einer festen Auflösung gerendert wird und nicht wie normale Vektorobjekte im aktuellen Dokument skaliert wird.http://www.w3.org/TR/SVG11/struct.html#ImageElement
Das Element <use>
kann jedoch nicht auf ganze SVG-Dateien verweisen. Sein xlink:href
Attribut ist ein Verweis auf ein Element/Fragment innerhalb eines SVG-Dokuments (http://www.w3.org/TR/SVG11/struct.html#UseElement). Das Element „use“ kann auf jede lokale oder nicht lokale Ressource verweisen.
Beispiel:
MyLibrary.svg:
<svg (...)>
<rect x="0" y="0" width="200" inkscape:label="upper-left-blue"
style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="upper-left-blue" height="200"/>
UseParts.svg:
<use x="0" y="0" width="400" xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:href="MyLibrary.svg#upper-left-blue" xlink:type="simple"
xlink:actuate="onLoad" height="400" id="use8793" xlink:show="embed"/>
Die Unterstützung dieser Funktion kann bei verschiedenen SVG-Editoren/-Viewern unterschiedlich sein, soweit ich weiß, sollte es (zumindest) in Inkscape, Firefox und Batik funktionieren.
Antwort2
Verwenden Sie dieimage
Element und verweisen Sie auf Ihre SVG-Datei. Speichern Sie zum Spaß Folgendes als recursion.svg
:
<svg width="100%" height="100%" viewBox="-100 -100 200 200" version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<circle cx="-50" cy="-50" r="30" style="fill:red" />
<image x="10" y="20" width="80" height="80" xlink:href="recursion.svg" />
</svg>
Quelle:https://stackoverflow.com/questions/5451135/embed-svg-in-svg/5451238#5451238