Professional Documents
Culture Documents
Napredni Web Dizajn 3
Napredni Web Dizajn 3
SVG format
Šta ćete naučiti na ovom času
● Upotreba SVG formata u HTML dokumentima
SVG format
SVG (Scalable Vector Graphics)
● Format vektorske slike koji je osmislio W3C za potrebe
prikazivanja vektorske grafike na vebu
SVG format
● Vektorska grafika, SVG format:
– skaliranje bez gubitka kvaliteta
– veličina dokumenta uglavnom manja u odnosu na ekvivalent
u rasterskom obliku
● SVG upotreba:
– gotove ilustracije (slike) – HTML, CSS
– animirane slike (CSS, JS)
– interaktivne slike (CSS, JS)
● Vektorska slika je fleksibilnija od rasterske
SVG format
● SVG je tekstualni XML bazirani format
● Primer SVG slike:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<rect x="25" y="25" width="200" height="200"
fill="lime" stroke-width="4" stroke="pink" />
<circle cx="125" cy="125" r="75" fill="orange" />
<polyline points="50,150 50,200 200,200 200,100"
stroke="red" stroke-width="4" fill="none" />
<line x1="50" y1="50" x2="200" y2="200" stroke="blue"
stroke-width="4" />
</svg>
SVG format
● SVG slika se sastoji od elemenata oblika (eng. shape elements):
– linija ( line )
– krug ( circle )
– pravougaonik ( rect )
– putanja ( path )
● Izgled elemenata se određuje preko atributa:
– za ivice ( stroke, stroke-width )
– za ispunu ( fill )
● Ovakav način organizacije slike omogućava pristupiti uz pomoć CSS-a i
JavaScript-a.
SVG format
● Crtanje u tekst editoru, kucanjem kȏda, nije uvek
praktično, zato se koriste programi za vektorsko
crtanje kao što su:
– Inkscape
– Adobe Illustrator
● Specifikacija SVG formata nalazi se na adresi:
https://www.w3.org/TR/2011/REC-SVG11-
20110816/
SVG i HTML
SVG sliku možemo dodati u HTML dokument na tri
načina:
– referenciranjem kao i svake druge slike (<img>)
– uključivanjem SVG kȏda. tzv. inline način (<svg>)
– referenciranjem kao objekta upotrebom
<object> , <embed> ili <iframe> elemenata
Referenciranje SVG slike
Sliku možemo referencirati kao i rastersku sliku, upotrebom <img> oznake:
<img src=“slika.svg“ alt=“Vektorska slika“>
Možemo je referencirati i u CSS kȏdu, na primer kao pozadinsku sliku:
h1 {backgorund-image: url('slika.svg')}
Prilikom referenciranja slike kao spoljnjeg dokumenta treba obratiti pažnju da
je definicija za namespace i verziju obavezna. To su atributi u početnoj
<svg> oznaci:
version="1.1" xmlns="http://www.w3.org/2000/svg"
Kada uključujemo SVG sliku referenciranjem na ovaj način onda ne možemo
da utičemo na njen sadržaj putem CSS-a ili JavaScript-a koji se nalazi u
HTML dokumentu
Inline uključivanje SVG slike
SVG kȏd direktno mešamo sa HTML kȏdom. SVG kȏd se stavlja unutar <svg/> oznaka na ono
mesto gde želimo da se pojavi slika. Definisanje xmlns i version atributa nije potrebno. Primer:
<body>
<svg viewBox="0 0 200 400" width="200" height="400">
<defs>
<filter id="f1" x="0" y="0">
<feGaussianBlur in="SourceGraphic" stdDeviation="15" />
</filter>
</defs>
<polygon points="0,0 0,400 200,200" filter="url(#f1)" />
</svg>
</body>
Ovaj način štedi jedan poziv serveru, i otvara mogućnost da manipulišemo elementima slike preko
CSS-a i JavaScript-a koji se nalazi u HTML dokumentu
Definisanje veličine slike
Atributi za određivanje veličine SVG slike su:
– width – konačna širina slike za prikaz na ekranu.
Dodatno, vrši se odsecanje slike, ako nije definisano
vidno polje
– height – konačna visina slike za prikaz na ekranu.
Dodatno, vrši se odsecanje slike, ako nije definisano
vidno polje
– viewbox – vidno polje slike. Područje u slici koje će se
prikazati na ekranu
Definisanje veličine slike
Ako veličina slike (width ili height) nije definisana slika će se
raširiti koliko joj kontekst dozvoljava. Primer upotrebe atributa:
● Inkscape – https://inkscape.org
● Adobe Illustrator
Online alati za optimizaciju
● https://jakearchibald.github.io/svgomg/
● https://petercollingridge.appspot.com/svg-editor
JavaScript biblioteke za rad sa SVG
● http://snapsvg.io/
● http://svgjs.com/
● https://dmitrybaranovskiy.github.io/raphael/
Dodatak za izvoz SVG animacije iz
Adobe After Effects
● https://aescripts.com/bodymovin/
● http://airbnb.io/lottie/
Korisne veze
● SVG tutorijal i objašnjenja
http://tutorials.jenkov.com/svg/index.html
Pitanja za proveru znanja
● Šta je SVG format?
● Kako uključujemo SVG sliku u HTML dokument?
● Kako se definiše veličina slike?
● Kako sve možemo da stilizujemo SVG sliku uz pomoć
CSS-a?
● Koja je razlika između referenciranja slike uz pomoć
<img> elementa i <object> elementa?
Najava sledećeg časa
● HTML elementi za multimediju