Az SVG egy nyelv, kétdimenziós vektorgrafikák leírására XML-ben. A nagyszerűsége abban mutatkozik meg, hogy weboldalba forráskód szinten beépíthetők. Ezzel nagyon könnyen tehetünk SVG képeket weblapjainkra.
Firefox, Internet Explorer 9, Google Chrome, Opera, és Safari böngészők támogatják az SVG-t. IE8 és korábbi változataiban csak plug-in segítségével működik, ilyen az Adobe SVG Viewer.
Mivel az SVG fájlok valójában XML fájlok, ezért egy szimpla szövegszerkesztővel (Jegyzettömb) létrehozhatók, de létezik SVG rajzolóprogram is, például az Inkscape.
Egy-egy rajzelem egy XML elemmel hozható létre.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="200" height="110"> <line x1="10" y1="10" x2="100" y2="100" style="stroke:blue" /> </svg>
Zöld szín:
#0f0
Zöld szín:
rgb(0, 255, 0)
Szimpla vonal a line elemmel hozható létre. A stroke tulajdonsággal megadható a vonal színe. A vonal szélességét a stroke-width tulajdonsággal állíthatjuk, mint azt a példában is láthatjuk.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="200" height="200"> <line x1="10" y1="10" x2="100" y2="100" style="stroke:blue; stroke-width:10" /> </svg>
A stroke-dasharray tulajdonsággal szaggatott vonal hozható létre.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="200" height="200"> <line x1="10" y1="10" x2="100" y2="100" style="stroke:blue; stroke-dasharray: 4;" /> </svg>
A stroke-opacity tulajdonsággal a vonalak számára átlátszóságot állíthatunk.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="200" height="200"> <line x1="100" y1="10" x2="100" y2="100" style="stroke:blue; stroke-width:10; stroke-opacity:0.5;" /> <line x1="150" y1="10" x2="150" y2="100" style="stroke:blue; stroke-width:10; stroke-opacity:0.2;" /> </svg>
Az átlátszóságot 0 és 1 között állíthatjuk. Minél kisebb, annál átlátszóbb.
A stroke-linecap tulajdonsággal a vonalak végződése állítható be.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="200" height="200"> <line x1="50" y1="10" x2="50" y2="100" style="stroke:blue; stroke-width:10; stroke-linecap:butt;" /> <line x1="80" y1="10" x2="80" y2="100" style="stroke:blue; stroke-width:10; stroke-linecap:round;" /> <line x1="110" y1="10" x2="110" y2="100" style="stroke:blue; stroke-width:10; stroke-linecap:square;" /> </svg>
A butt, round és square érték.
Téglalap a rect elemmel hozható létre.
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <rect width="80" height="50" style="fill:rgb(0,0,255); stroke-width:1; stroke:rgb(0,0,0)"/> </svg>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <rect x="50" y="20" rx="20" ry="20" width="80" height="50" style="fill:red;stroke:black;stroke-width:5;opacity:0.5"/> </svg>
Kör a circle elemmel hozható létre.
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red"/> </svg>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <ellipse cx="110" cy="50" rx="60" ry="30" style="fill:yellow;stroke:purple;stroke-width:2"/> </svg>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="80" height="60"> <polygon points="50,20 20,40 70,50" style="fill:lime;stroke:purple;stroke-width:1"/> </svg>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <polyline points="75,25 50,40 50,70 75,80 75,120" style="fill:none;stroke:black;stroke-width:2" /> </svg>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="200" height="200"> <style type="text/css"> <![CDATA[ line { stroke: blue; stroke-width: 4; } ]]> </style> <line x1="50" y1="10" x2="50" y2="100"/> <line x1="80" y1="10" x2="80" y2="100"/> </svg>
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="f12_2.css" type="text/css"?> <!DOCTYPE svg PUBLIC "-//W3//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns= "http://www.w3.org/2000/svg" xmlns:xlink= "http://www.w3.org/1999/xlink" version="1.1" width="200" height="200"> <!-- primitivek --> </svg>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="200" height="200"> <style type="text/css"> <![CDATA[ line { stroke: blue; stroke-width: 4; } line.elso { stroke: red; } ]]> </style> <line class="elso" x1="50" y1="10" x2="50" y2="100"/> <line x1="80" y1="10" x2="80" y2="100"/> </svg>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="200" height="200"> <text x="100" y="100" style=""> Helló Világ! </text> </svg>
Vegyük észre az első sorban a kódolás beállítását. Az ékezetes betűk miatt szükség van rá.
A rotate első paramétere a forgatás szöge 12 órától az óra járásával egyezően. A második a forgatás tengelyének pontja.
<?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <text x="15" y="15" fill="red" transform="rotate(45 20,0)"> Ez a szöveg forgatható </text> </svg>
<?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <text x="15" y="15" fill="red" font-weight="bold">Ez a szöveg vastag</text> <text x="15" y="35" fill="red" font-weight="none">Ez a szöveg normál </text> <text x="15" y="55" fill="red" font-style="italic">Ez a szöveg dőlt </text> <text x="15" y="85" fill="red" font-size="18">Ez a szöveg méretezett</text> </svg>
<html> <body> <h1>SVG weblapon</h1> <svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="blue" /> </svg> </body> </html>
Olyan teknősbéka grafika szerű. Menj oda, húzz vonalat közben, stb.
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <path d="M50 0 L75 250 L225 200 Z" style="fill:blue"/> </svg>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <path d="M 10 80 q 200 -80 300 0" stroke="blue" stroke-width="1" fill="none" /> </svg>
Az M után van a kezdőpont. A q után milyen irányba húzzuk a görbét, majd hol végződjön.
Három pontot kell meghatároznunk:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="300" height="280"> <path d="M100,200 C100,100 250,100 250,200" stroke="blue" stroke-width="1" fill="none" /> <path d="M10,10 S50,50 50,10" stroke="blue" stroke-width="1" fill="none" /> </svg>
aliceblue
antiquewhite
aqua
aquamarine
azure
beige
bisque
black
blanchedalmond
blue
blueviolet