SVG - oddzielenie struktury i prezentacji

W tym paragrafie przedstawię spojrzenie na oddzielenie struktury dokumentu od jego wizualnej prezentacji. Możemy tego dokonać przy użyciu stylów. oddzielenie struktury i prezentacji Poniższy przykład pokazuje użycie stylu lokalnego.

<circle cx="20" cy="20" r="10" style="stroke: blue; stroke-width: 1.6; fill: blue; fill-opacity: 0.6" />
Wewnętrzny arkusz stylów:
<svg>
<defs>
<style type="text/css"><![CDATA[
circle {
fill: #ffc;
stroke: red;
stroke-width: 2;
stroke-dasharray: 5 3
}
]]></style>
</defs>
<circle cx="20" cy="20" r="10"/>
<circle cx="60" cy="20" r="15"/>
<circle cx="20" cy="60" r="10" style="fill: #cfc"/>
<circle cx="60" cy="60" r="15" style="stroke-width: 1; stroke-dasharray: none;"/>
</svg>
Zastosowanie zewnętrznego arkusza stylów:

Jeśli chcesz użyć tego samego arkusza stylów do wielu dokumentów SVG najlepiej wtedy użyć zewnętrznego arkusza stylów. Przykładowy zewnętrzny arkusz stylów jest pokazany poniżej. Nadajmy mu nazwę np. ext_style.css.
* { fill:none; stroke: black; } /* default for all elements */
rect { stroke-dasharray: 7 3; }
circle.yellow { fill: yellow; }
.thick { stroke-width: 5; }
.semiblue { fill: blue; fill-opacity: 0.5; }
A to przykładowy document SVG wykorzystujący ten arkusz stylów. Jak widzimy odwołanie do arkusza odbywa się poprzez linijkę <?xml-stylesheet ...?>.
<?xml version="1.0"?>
<?xml-stylesheet href="ext_style.css" type="text/css"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 
<svg width="200px" height="200px">
<line x1="10" y1="10" x2="40" y2="10"/>
<rect x="10" y="20" width="40" height="30"/>
<circle class="yellow" cx="70" cy="20" r="10"/>
<polygon class="thick" points="60 50, 60 80,  90 80"/>
<polygon class="thick semiblue"
    points="100 30, 150 30, 150 50, 130 50"/>
</svg>