SVG – Learning by Coding
1: <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
2: <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
3: "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
4: <!ATTLIST svg xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink">
5: ]>
6:
7: <!-- SVG - Learning by Coding - http://www.datenverdrahten.de/svglbc/ -->
8: <!-- Author: Dr. Thomas Meinike 05/05 - thomas@handmadecode.de -->
9:
10: <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
11:
12: <title>SVG - Learning by Coding</title>
13: <desc>SVG-Spezifikation in Beispielen</desc>
14:
15: <defs>
16:
17: <style type="text/css">
18: <![CDATA[
19:
20: /*
21: Universal-Selektor: Alle Elemente des Dokuments werden zunaechst
22: unsichtbar (und spaeter wieder sichtbar) gemacht.
23: */
24: *
25: {
26: visibility: hidden;
27: }
28:
29: /*
30: Elementtyp-Selektor: Rechtecke erhalten gelbe Fuellfarbe.
31: */
32: rect
33: {
34: fill: #FF0;
35: }
36:
37: /*
38: Elementtyp-Selektor: Kreise erhalten rote Fuellfarbe.
39: */
40: circle
41: {
42: fill: #F00;
43: }
44:
45: /*
46: Selektoren-Gruppierung: Deckkraft wird fuer Rechtecke
47: und Kreise auf 80% gesetzt (d. h. 20% Transparenz).
48: */
49: rect,circle
50: {
51: opacity: 0.8;
52: }
53:
54: /*
55: Nachfahren-Selektor mit Selektoren-Gruppierung kombiniert:
56: Alle darzustellenden Elemente werden wieder sichtbar gemacht
57: (Aufhebung der visibility-Vorgabe des Universal-Selektors).
58: */
59: svg rect,circle,text,line,image
60: {
61: visibility: visible;
62: }
63:
64: /*
65: Attribut-Selektor: Kreise mit Attribut cx="240" erhalten
66: gruene Fuellfarbe.
67: */
68: circle[cx="240"]
69: {
70: fill: #090;
71: }
72:
73: /*
74: Attribut-Selektor: Kreise mit Attribut cx="90" und Attribut cy="130"
75: erhalten hellblaue Fuellfarbe.
76: */
77: circle[cx="90"][cy="130"]
78: {
79: fill: #9CF;
80: }
81:
82: /*
83: Nachbar-Selektor: Rechtecke die nach Kreisen unterhalb desselben
84: Elternelements folgen, erhalten blaue Fuellfarbe.
85: */
86: circle + rect
87: {
88: fill: #00C;
89: }
90:
91: /*
92: Kind-Selektor: Rechtecke, die unmittelbare Kindelemente der Gruppe
93: mit ID="gruppe1" sind, erhalten graue Fuellfarbe.
94: */
95: g#gruppe1 > rect
96: {
97: fill: #CCC;
98: }
99:
100: /*
101: Nachfahren-Selektor: Rechtecke, die unterhalb vom g-Element mit
102: der ID="gruppe2" liegen, erhalten eine hellgruene Fuellfarbe.
103: */
104: g#gruppe2 rect
105: {
106: fill: #CFC;
107: }
108:
109: /*
110: ID-Selektor: Inhalte der Gruppe mit ID="gruppe2" erhalten roten Rand.
111: */
112: g#gruppe2
113: {
114: stroke: #F00;
115: }
116:
117: /*
118: ID-Selektor mit Pseudo-Klasse: Das erste direkt folgende Rechteck-Kindelement
119: unterhalb der Gruppe mit der ID="gruppe1" erhaelt blauen gestrichelten Rand.
120: */
121: g#gruppe1 > rect:first-child
122: {
123: stroke: #00C;
124: stroke-dasharray: 3,5;
125: }
126:
127: /*
128: Klassen-Selektor: Kreise mit der Klasse "extrakreis" erhalten
129: keine Fuellfarbe und einen schwarzen Rand.
130: */
131: circle.extrakreis
132: {
133: fill: none;
134: stroke: #000;
135: }
136:
137: ]]>
138: </style>
139:
140: </defs>
141:
142: <text x="20" y="30" style="fill: #000; font-size: 24px">
143: Ausgewählte CSS-Selektoren im Einsatz</text>
144: <text x="20" y="45">Details als Kommentare im Code</text>
145:
146: <circle cx="40" cy="80" r="20"/>
147: <circle cx="90" cy="80" r="20"/>
148: <circle class="extrakreis" cx="140" cy="80" r="20"/>
149: <circle cx="190" cy="80" r="20"/>
150: <circle cx="240" cy="80" r="20"/>
151:
152: <circle cx="40" cy="130" r="20"/>
153: <circle cx="90" cy="130" r="20"/>
154: <circle cx="140" cy="130" r="20"/>
155: <circle class="extrakreis" cx="190" cy="130" r="20"/>
156: <circle cx="240" cy="130" r="20"/>
157:
158: <circle cx="40" cy="180" r="20"/>
159: <rect x="70" y="160" width="40" height="40"/>
160: <rect x="120" y="160" width="40" height="40"/>
161: <rect x="170" y="160" width="40" height="40"/>
162: <circle cx="240" cy="180" r="20"/>
163:
164: <g id="gruppe1">
165: <rect x="20" y="210" width="40" height="40"/>
166: <rect x="70" y="210" width="40" height="40"/>
167: <g id="gruppe2">
168: <rect x="120" y="210" width="40" height="40"/>
169: <rect x="170" y="210" width="40" height="40"/>
170: </g>
171: <rect x="220" y="210" width="40" height="40"/>
172: </g>
173:
174: <line x1="285" y1="60" x2="285" y2="280" style="stroke: #CCC; stroke-width: 2px"/>
175: <image xlink:href="bilder/css_selectors.png" x="310" y="60" width="244" height="194"/>
176: <text x="20" y="275" style="fill: #00C; font-size: 12px">aktuelles Ergebnis</text>
177: <text x="310" y="275" style="fill: #00C; font-size: 12px">erwartetes Ergebnis</text>
178:
179: </svg>
[zum Anfang]