Neben der „klassischen Variante“ SVG als Bilder mit dem img-Element in HTML-Dokumenten zu referenzieren, ist es seit XHTML möglich SVG-Code direkt im Dokument als Dateninsel zu verwenden:
<html xmlns="http://www.w3.org/1999/xhtml">
…
<body>
…
<svg xmlns="http://www.w3.org/2000/svg">
</svg>
…
</body>
</html>
Der Code für HTML 5 ist analog dazu und verzichtet auf die XML-Namensraum-Angaben, da SVG nun Teil von HTML 5 ist:
<html>
…
<body>
…
<svg>
</svg>
…
</body>
</html>
viewBoxDie Größe der Grafiken in der HTML-Datei kann mit den Attributen width und height oder den gleichnamigen CSS-Regeln spezifiziert werden. Bei Verwendung des viewBox-Attributs wird die Grafik per Default auf die komplette Viewport-Breite skaliert.
Die vier Werte der viewBox spezifizieren die „Zeichenfläche“ der SVG:
viewBox="x y breite höhe"
Alle Angaben sind in viewBox-Einheiten und geben die minimalen sowie maximalen Werte der Koordinaten innerhalb der Grafik vor; Objekte, deren Koordinaten außerhalb der viewBox liegen, werden an der viewBox-Grenze abgeschnitten:
<svg width="20em" heigh="20em" viewBox="0 0 20 20">
<circle cx="15" cy="10" r="10" style="stroke:black;fill:red"/>
</svg>
Für SVG direkt in HTML gelten die gleichen CSS-Regeln sowie Eindeutigkeiten von Klassen und IDs wie für reines HTML, sie gelten global im ganzen HTML-Dokument.
Dies kann genutzt werden CSS-Regeln und Objekte, die in mehreren Grafiken verwendet werden, an zentraler Stelle im Dokument zu definieren und dann in jeder Grafik zu referenzieren.
Die CSS-Regeln für die Grafiken passen daher in das globale Stylesheet oder den globalen style-Bereich.
Die SVG-Objekte können zum Beispiel in einem nicht-sichtbaren svg am Ende des HTML-body definiert werden:
<svg style="display:none">
<def>
…
Marker, Symbole, Pfade, Objekte, … mit IDs
</def>
</svg>
</body>
Skalierbare Vektorgrafiken, die in HTML-Dokumente eingebettet sind, können nicht wie bei referenzierten Grafiken einfach per Kontextmenü → Kopieren in die Zwischenablage kopiert und von dort in eine andere Anwendung eingefügt werden; der Zugriff ist nur über das HTML-DOM möglich. Man muss also manuell mit STRG+U oder die Browser-Entwicklertools (durch Drücken der Taste F12) an den Code heran. Eine Möglichkeit einen Bildexport anzubieten, habe ich im SELFHTML-Blog beschrieben. Die Idee dabei ist mit JavaScript auf den DOM-Teilbaum der Grafik zuzugreifen und daraus einen Download-Link zu generieren.
Beim dort beschriebenen Ansatz ist zu beachten, dass nur die Grafik exportiert wird, aber nicht zentral definierte Styles und Objekte – diese müssen vor dem Speichern zusätzlich in den DOM-Teilbaum der Grafik eingefügt werden.