Doslovno: skalabilan Vektorska grafika... MVG? SVG! V vektorski formati ne pohranjuje se sama slika, već upute za njeno konstruiranje iz tačaka i krivulja.
V rasterski formati informacije o određenom broju tačaka slike čvrsto su upakovane u binarnu ciglu. Beskorisno ga je istraživati i možete ga promijeniti samo u grafičkim uređivačima.
�PNG IH�aV PLTE�������0� IDAcZ�d���� �W = S�3�o; ���] P ���IEND�B`� ~
SVG format se također može kreirati i mijenjati u grafičkim uređivačima kao što su Illustrator, Sketch ili Inkscape. Ali to je i tekst, što znači da se može otvoriti kao HTML ili CSS u bilo kojem uređivaču koda.
Reći ću vam više: SVG je kao zasebna HTML stranica. Kada ugrađujete SVG, zapravo ugrađujete ne samo sliku, već cijelu stranicu. Sa svojim koordinatnim sistemom, okvirom za prikaz, stilovima, skriptama i neverovatnim karakteristikama.
Stilovi i scenariji, Karl! Evo jedne jednostavne slike za vas.
Gledajući SVG kao odvojena stranica- postaje jasnije koji način umetanja vam je potreban. Postoje četiri glavna, a svaka ima svoje karakteristike.
Prvi i najjednostavniji je element direktno u HTML kodu. Ovo je, u principu, najviše efikasan metod učitajte bilo koju sliku - pretraživači unapred znaju po HTML kodu da je tu i počinju da je učitavaju.
Loša strana je što skripte neće raditi u takvom SVG-u i svaki pokušaj interakcije sa elementima unutar je osuđen na propast. Fajl će biti kao staklo: možete gledati, ali ga ne možete dodirnuti. Ipak, sve ostalo radi dobro interno, uključujući CSS animacije.
Ova metoda je najprikladnija za slike sadržaja kojima nije potrebna interakcija: logotipi, grafike, dijagrami.
Drugi način je pozadinska slika u CSS-u. I nije bitno hoćete li ga postaviti na element, pseudoelement ili umetnuti sadržaj - rezultat će biti isti kao kod : iza stakla, ali unutra nešto radi.
.picture (pozadinska slika: url (picture.svg);)
Ova metoda je prikladna za dizajn grafike kojoj nije potrebna interakcija: pozadine, ikone i druge sitnice.
Treći način, kroz
![](https://i2.wp.com/picture.png)
Zapravo, umjesto
Fleksibilnost ima svoju cijenu: zbog činjenice da više nije samo grafika i da se tamo može skriptirati, ovoj metodi se nameću drugi sigurnosni zahtjevi. Na primjer, ne možete samo umetnuti sliku s druge domene.
Ova metoda je prikladna kada trebate nešto umetnuti interaktivna grafika: igračke, grafike i sve složenije. Dovoljno je da se toga jednom prisjetimo
Četvrta metoda je radila kada su pretraživači prepisali svoje HTML parsere na novi standard i sadržaj SVG datoteka se može umetnuti direktno na stranicu, kao i bilo koje druge oznake.
Square
Sa ovim SVG-om možete učiniti isto kao i sa običnim HTML-elementima: stilovi, skripte - pa i sami znate. Na primjer, možete promijeniti boju ispune kada se lebdi i sve opisati općim stilovima.
Loša strana je što se takve slike ne keširaju odvojeno od stranice - iako se to može zaobići kroz simbole i yuz, ali ovo duga priča, o ovome ćemo razgovarati posebno.
SVG je mnogo više od grafičkog formata - to smo već shvatili. Želite li kopati dublje? Pročitajte članke Sarah Suaydan, ovo je najbolje što postoji do sada. Svi linkovi su u opisu za video.
Na kraju: postoji mnogo načina i svi su na neki način dobri. Odaberite onaj koji odgovara vašim potrebama, ali uvijek počnite s najjednostavnijim: i pozadinu, a onda to zakomplikovati - ako nije dovoljno.
Video verzija
Podrška za skalabilnu vektorsku grafiku (SVG) je odlična za sve moderni pretraživači Format slike se pojavljuje u nevjerovatnim kontekstima na mnogo različitih web stranica. Ali iako je standard već skoro dvije decenije, SVG ostaje donekle novi format za neke dizajnere i programere, ostavljajući ih zbunjenima u pogledu toga kako ga treba koristiti na web lokaciji. Evo nekoliko razloga zašto biste trebali koristiti SVG:
Mala veličina fajla
Dobro dizajnirani, tipični SVG-ovi su mnogo manji od ekvivalentnih PNG-ova, što znači da se stranice koje ih koriste brže učitavaju za korisnike.
Skalabilnost
Pošto je SVG napravljen od matematičke formule umjesto fiksnih piksela bitmap grafika SVG slike se mogu povećavati i smanjivati bez gubitka kvaliteta, što ih čini idealnim za moderne responsive web lokacije.
Interagira sa DOM-om
SVG se ponekad naziva "crtanjem sa oznakama": svaki element u SVG slici je u interakciji sa DOM-om, što znači da CSS i JavaScript mogu manipulisati delovima SVG dokumenta. Za razliku od bitmap grafike, svaki pojedinačni oblik u SVG-u može imati svoj identifikator ili klasu.
Lako se modificira i prilagođava
Kvalitet SVG komponenti znači da se dobro oblikovani SVG dokumenti mogu lako mijenjati u bilo kojem uređivaču teksta bez potrebe za specijalizovani programi potrebno za bitmape. A pošto SVG komunicira sa DOM-om, njegovi elementi se mogu modifikovati pomoću CSS-a. SVG format je odličan za prikaz:
-
ilustracije i crteži
logos
SVG alati
Dok možete kreirati SVG dokument koristeći bilo koji uređivač teksta programi za vektorsku ilustraciju kao npr Adobe ilustrator ili Inkscape je obično najbolji izbor(iako treba napomenuti da druge aplikacije uključujući 3D programe kao što su Blender i serverske aplikacije, može izvesti SVG).
Šta god da koristite, trebali biste biti svjesni da kreiranje SVG-ova iz aplikacija ponekad ostavlja mnogo željenog: rezultirajući dokument je često prekodiran i ponekad loše formatiran. Svg fajl se može učiniti manjim, kompaktnijim obradom sa optimizatorom kao što je SVGOMG. Ponekad vam propuštanje pogrešnog svg dokumenta kroz W3C validator može pomoći da odredite probleme.
SVG integracija
Postoje tri glavna načina na koji se SVG može koristiti direktno na web stranici:
Pošto je SVG zasnovan na XML-u, može se direktno integrisati u kod na vašoj stranici. SVG kod smanjuje kašnjenje i ukupno vrijeme učitavanja vaše stranice.
Sviđa mi se bitmape, SVG fajl se može referencirati pomoću oznake ili preko CSS-a kao pozadinske slike. Ovo je često Najbolji način osim ako SVG-ovima nije potrebna individualna pažnja CSS-a i JavaScript-a.
Umetnuto kao .
Responsive SVG
kao što sam ranije spomenuo, pojedinačne komponente SVG-ovi mogu biti označeni ID-om ili klasom, što znači da se njima može manipulirati unutar medijskih upita. To znači da možete koristiti razne funkcije SVG ilustracije kada različite veličine ekrane, stvarajući mogućnosti za prilagodljive logotipe ili ilustracije koje pokazuju visoke ili niske detalje kako se okvir za prikaz smanjuje i širi... što je savršeno pogodno za responsive design, koji se sastoji u tome da se posjetiteljima stranice prikaže relevantan sadržaj na odgovarajućem nivou detalja, na uređaju s kojeg gledaju u ovog trenutka site.
Evo nekoliko primjera responzivnih logotipa:
Interaktivni SVG
SVG-ovi su savršeni za prikazivanje oblika iz stvarnog svijeta, što znači da su odlični za interaktivne karte:
Uzorci
Dva su posebno zanemarena aspekta SVG-a:
SVG je format slike za vektorsku grafiku. To doslovno nije ništa drugo do skalabilna vektorska grafika. Odnosno, to je upravo ono s čime radite u Adobe Illustratoru. Prilično je lako koristiti SVG u web razvoju, ali postoje neke specifičnosti koje vrijedi razmotriti.
Za šta se koristi SVG
- Mala veličina datoteke koja se dobro kompresuje
- Skalirajte do bilo koje veličine bez gubitka kvalitete
- Izgleda sjajno na retina displejima
- Potpuna kontrola dizajna s interaktivnošću i filterima
Hajde da nacrtamo nešto za predstojeći rad u Adobe Illustratoru. Uzmimo pticu Kivi:
Imajte na umu da je platno isečeno tačno do ivice slike. Platno u SVG-u je izgrađeno na potpuno isti način kao PNG ili JPG. Možete sačuvati datoteku direktno iz Adobe Illustrator-a kao SVG datoteku.
Nakon što sačuvate datoteku, pojavit će se drugi dijalog SVG opcija. Da budem iskren, ne znam mnogo o svim postavkama prikazanim u ovom prozoru. Postoji specifikacija za SVG profile, pa ako ste zainteresovani možete je pročitati. Smatram da SVG 1.1 odlično radi.
Zabavni dio ovdje je što možete ili kliknuti na OK i sačuvati datoteku, ili kliknuti na dugme „SVG kod...“ i otvoriće se uređivač teksta sa SVG kodom.
Obje metode mogu biti od pomoći.
Korištenje SVG-a kao img oznake
U Illustratoru, naše platno je 612px ✕ 502px.
Koliko velika slika biće na stranici na kojoj ćete odlučiti. Možete promijeniti veličinu slike definiranjem svojstva širine i visina, odnosno potpuno ista kao kod PNG ili JPG. Evo primjera:
Pogledajte ovu olovku!
Kako napraviti SVG za više pretraživača
Kada koristite SVG na ovaj način, morate imati na umu različitu podršku među pretraživačima. U osnovi, SVG radi svuda osim IE8 i starijih, i Androida 2.3 i starijih.
Ako trebate da koristite SVG, ali vam je potrebna i podrška od gore navedenih pretraživača, postoji nekoliko rješenja za problem. Koristio sam nekoliko tehnika na raznim projektima da riješim ovaj problem.
Jedan od načina da provjerite SVG podršku je Modernizr, koji mijenja src putanju:
If (! Modernizr.svg) ($ (. Logo img"). Attr ("src", "images / logo.png");)
David Bushell je smislio vrlo laganu alternativni način ali sadrži javascript u oznakama:
Usluga SVGeezy takođe može pomoći. U nastavku ovog članka analizirat ćemo mnogo različitih backup metode za SVG podršku.
Koristite SVG kao pozadinsku sliku
Po analogiji sa img tag SVG se može koristiti kao pozadinska slika:
Kiwi Corp .logo (prikaz: blok; uvlaka teksta: -9999px; širina: 100px; visina: 82px; pozadina: url (kiwi.svg); veličina pozadine: 100px 82px;)Imajte na umu da postavljamo veličinu pozadine na potpuno istu veličinu kao i element. To se mora učiniti, jer bismo inače vidjeli mali gornji dio originalna slika... Ovi brojevi uzimaju u obzir originalni omjer slike. Također možete koristiti veličinu pozadine kao vrijednosti ključne riječi, na primjer sadrže tako da slika ispunjava cijeli element.
Korišćenje SVG-a kao pozadinske slike ostavlja traga na podršci pretraživača, ali generalno, sve je isto kao i korišćenje oznake img.
Modernizr nam ovdje može pomoći na još efikasniji način nego sa img. Poenta je, ako zamijenite pozadinska slika sa podržanim formatom, tada samo jedan HTTP zahtjev umjesto dva, kao što je slučaj sa img. Modernizr dodaje naziv klase “no-svg”. HTML oznaka ako pretraživač nema SVG podršku:
Glavno zaglavlje (pozadina: url (logo.svg) bez ponavljanja na vrhu lijevo; background-size: sadrži; ) .no-svg .main-header (pozadinska slika: url (logo.png);)
Ako imate problema s korištenjem gornja dva načina korištenja SVG-a, u nastavku su još neki načini za postavljanje vektorske grafike.
Korištenje "inline" SVG
Gore je pomenuto da prilikom snimanja slike u SVG formatu, koristeći Illustrator editor, možete dobiti ispravan SVG kod (također možete otvoriti datoteku u uređivaču teksta i kopirati ovaj kod). Možete kopirati ovaj kod u svoj HTML i SVG će se prikazati potpuno isto kao kada koristite img.
Ovo može biti korisno jer slika slike dolazi zajedno sa kodom u dokumentu i ne postavlja HTTP zahtjev. Drugim riječima, koristi su iste kao i korištenje Podaci podataka URI. Međutim, postoje i nedostaci. Zbog umetanja umetka direktni kod SVG, dokument počinje da izgleda kao veliko napuhano sranje.
Postoji i opcija za SVG umetci strana servera:
Optimizacija SVG-a
Adobe Illustrator podrazumevano ne optimizuje rezultujuću SVG sliku. Pruža DOCTYPE i bilješke, sve po uglavnom smeće. SVG je po defaultu prilično lagan, ali zašto ga ne učiniti još lakšim? Peter Collingridge obezbjedio online alat da optimizujete SVG optimizator. Pomoću ove usluge možete uploadati stari fajl i nabavite optimiziranu novu.
Ako želite više hardkora - nema problema, evo alata za optimizaciju SVG-a pomoću javascript Node JS alata na strani servera https://github.com/svg/svgo
Styling SVG
Vidite kako je SVG poput HTML-a? To je zato što su oboje XML podaci... Postoje dva elementa u našem dizajnu koji čine osnovu, a to su elipsa i putanja. Možemo ih bez problema usmjeriti na klase putem HTML koda.
Sada možemo kontrolisati ove elemente pomoću prilagođenog SVG CSS-a. Ovaj CSS ne mora biti direktno ugrađen u SVG, može se pozicionirati apsolutno bilo gdje. Imajte na umu da SVG elementi imaju poseban skup stilova koji su posebno dizajnirani za rad vektorska grafika... Na primjer, ne koristi se uobičajena boja pozadine, već ispuna. Iako neki uobičajeni stilovi također funkcionišu, poput: lebdenja.
Kivi (popunite: # 94d31b;). Kivi: lebdite (popunite: # ace63c;)
SVG ima zabavne filtere. Na primjer zamućenje:
...Zatim ovo možete primijeniti u css po potrebi:
Tlo: lebdite (filter: url (#pictureFilter);)
Evo šta se dogodilo:
Pogledajte ovu olovku!
Podrška za ugrađeni SVG pretraživač
Lista pretraživača koji podržavaju ovaj način rada SVG mapiranja se mogu pogledati ovdje http://caniuse.com/#feat=svg-html5. Opet, nema podrške u IE8 i Androidu 2.3.
Jedna od rezervnih opcija za ovu vrstu SVG-a:
...Zatim ponovo koristimo Modernizr:
Logo-fallback (prikaz: nema; / * Uvjerite se da je "iste veličine kao što zauzima SVG * /) .no-svg .logo-fallback (pozadinska slika: url (logo.png);)
Korištenje SVG-a kao objekta
Ako vam se ne sviđa korištenje “inline” SVG-a (zapamtite da ova opcija ima nedostatke, kao što je nedostatak keširanja), možete povezati SVG sa objektom i zatim ga promijeniti pomoću css-a:
Za podršku za više pretraživača koristimo Modernizr:
No-svg .logo (širina: 200px; visina: 164px; pozadinska slika: url (kiwi.png);)
Ova opcija odlično radi sa keširanjem i ima više podrške za pretraživač od svih gore navedenih. Ali da biste djelovali sa CSS-om na takvom objektu, morate napisati stilove direktno u SVG datoteku.
...Korištenje podataka URI je spor na način da smanji težinu SVG-a. Mobilefish.com nudi online alat za optimizaciju za ovu svrhu. Dovoljno je da zalijepite sadržaj svoje SVG datoteke i popunite formular, a rezultat će biti prikazan u tekstualnom polju koje se može kopirati. izgleda ovako:
Ovaj kod možete koristiti bilo gdje! Na primjer:
Logo (pozadina: url (podaci: image / svg + xml; base64,);)
I usput, ako imate pre-base64 inline stil u SVG-u, radit će ako ga koristite kao objekt!
Priprema SVG-a za upotrebu na webu je vrlo jednostavan proces, ništa komplikovaniji. JPEG izvoz ili PNG. Koristite bilo koji grafički uređivač koji vam je poznat (Illustrator, Sketch, Inkscape [besplatno] i slično [ili čak Photoshop ako koristite slojeve s oblicima]) sa veličinom slike koju planirate koristiti. Obično radim u Illustratoru, pa ću objasniti neke od načina pripreme fajlova u ovom programu, ali općenito su primjenjivi na bilo koji drugi program. Možda biste željeli pretvoriti tekst u krivulje, jer će se font najvjerovatnije prikazati pogrešno, osim ako, naravno, ne planirate da ga stilizirate s web fontom koji se koristi na stranici (što je moguće!). Također ne biste trebali pretvarati sve objekte u jedan oblik, pogotovo ako imate potez koji će se morati kontrolirati na stranici, pogotovo jer transformacija objekata često ne smanjuje veličinu datoteke. Sva imena dodijeljena grupama ili slojevima bit će dodana u SVG kao ID elementa. Ovo je prilično zgodno za stiliziranje, ali će malo povećati ukupnu veličinu datoteke.
Prije izvoza, trebate provjeriti da li su sve slike u mreži sa cijelim brojem piksela (to jest, na primjer, ne 23,3px × 86,8px). U suprotnom, slika će najvjerovatnije nedostajati jasnoći i dio slike će biti izrezan. U Illustratoru to možete učiniti ovako: Object> Artboards> Fit to Artwork Bounds. Zatim pritisnite sačuvaj kao i izaberite SVG i ostavite podrazumevana podešavanja. Ovdje možete napraviti malu optimizaciju, ali nije vrijedno toga, jer ćemo kasnije primjenjivati različite trikove poboljšanja, tako da za sada nećemo gubiti vrijeme na ove postavke.
Tehnike za smanjenje veličine datoteka.
(Vidi o optimizaciji)
Da biste postigli najmanju veličinu SVG-a, bilo bi logično ukloniti sve nepotrebno iz njega. Najpoznatije i koristan program(uključeno najmanje Mislim da je tako) za rukovanje SVG-om to je SVGO. Ona uklanja sve ne potreban kod... Ali! Budite oprezni kada koristite ovaj program ako planirate da manipulišete SVG-om CSS pomoć/ Js, jer može previše očistiti kod, što otežava dalje izmjene. Pogodnost SVGO-a je i u činjenici da se može uključiti u proces automatska montaža projekta, ali možete i koristiti GUI ako želiš.
Detaljnije razumijevanje sa ispravno uklanjanje sve nepotrebno, možemo još nešto da uradimo grafički editor... Prvo morate biti sigurni da koristite što manje staza/oblika, kao i tačaka na tim stazama. Možete kombinirati i pojednostaviti sve što se može pojednostaviti i ukloniti sve. nepotrebnih poena... Illustrator ima dodatak VectorScribe s alatom Smart Remove Brush Tool, koji će vam pomoći da uklonite točke i ipak napustite opšti oblik Isto.
Predoptimizacija
Smart Remove Brush Tool je uklonio tačke
Dalje ćemo uvećati sliku. U Illustratoru je zgodno uključiti View> Pixel Preview i provjeriti kako su staze pozicionirane. Trebat će malo vremena za postavljanje staza na mrežu, ali ovaj trud će se isplatiti i omogućit će vam da postignete oštrije renderiranje (bolje je unaprijed obratiti pažnju na to).
Tačke izvan mreže
Poravnajte sa mrežom
Ako postoje dva ili više objekata za poravnanje, onda je vrijedno ukloniti sva nepotrebna preklapanja. Ponekad, čak i ako su obrisi pažljivo poravnati, može biti vidljiva tanka bijela linija. Da biste to spriječili, možete preklapati objekte malo jedan na drugi. Važno: u SVG-u z-indeks ima određeni redosled, koji zavisi od objekta koji se nalazi na dnu, tako da je vredno postaviti gornji objekat u donji dio fajl u kodu.
I na kraju, na kraju, ali ne i najmanje važno, nešto što se obično zaboravlja je da omogućite gzip kompresiju SVG-a na vašem sajtu u .htaccess fajlu.
AddType image / svg + xml svg svgz
Kao primjer koliko je efikasna ova tehnika, koristiću originalni logo Breaking Borders i optimizirati ga na ovaj način: povećati veličinu na ono što bi trebalo biti; Ja ću srediti konture; obrisati što više tačaka; premjestiti tačku za cijeli broj piksela; Premjestit ću sve oblasti preklapanja i poslati sve u SVGO.
Original: 1,413b
Nakon optimizacije: 409b
Kao rezultat toga, veličina datoteke je postala ~ 71% manja (i ~ 83% manja sa kompresijom)
Doslovno: skalabilna vektorska grafika. MVG? SVG! U vektorskim formatima ne pohranjuje se sama slika, već upute za njenu konstrukciju pomoću tačaka i krivulja.
U rasterskim formatima, informacije o određenom broju tačaka slike su čvrsto spakovane u binarnu ciglu. Beskorisno ga je istraživati i možete ga promijeniti samo u grafičkim uređivačima.
�PNG IH�aV PLTE�������0� IDAcZ�d���� �W = S�3�o; ���] P ���IEND�B`� ~
SVG format se također može kreirati i mijenjati u grafičkim uređivačima kao što su Illustrator, Sketch ili Inkscape. Ali to je i tekst, što znači da se može otvoriti kao HTML ili CSS u bilo kojem uređivaču koda.
Reći ću vam više: SVG je kao zasebna HTML stranica. Kada ugrađujete SVG, zapravo ugrađujete ne samo sliku, već cijelu stranicu. Sa svojim koordinatnim sistemom, okvirom za prikaz, stilovima, skriptama i neverovatnim karakteristikama.
Stilovi i scenariji, Karl! Evo jedne jednostavne slike za vas.
Ako pogledate SVG kao zasebnu stranicu, postaje jasnije koji vam je način umetanja potreban. Postoje četiri glavna, a svaka ima svoje karakteristike.
Prvi i najjednostavniji je element direktno u HTML kodu. Ovo je, u principu, najefikasniji način za učitavanje bilo koje slike - pretraživači unapred znaju po HTML kodu da je tu i počinju da je učitavaju.
Loša strana je što skripte neće raditi u takvom SVG-u i svaki pokušaj interakcije sa elementima unutar je osuđen na propast. Fajl će biti kao staklo: možete gledati, ali ga ne možete dodirnuti. Ipak, sve ostalo radi dobro interno, uključujući CSS animacije.
Ova metoda je najprikladnija za slike sadržaja kojima nije potrebna interakcija: logotipi, grafike, dijagrami.
Drugi način je pozadinska slika u CSS-u. I nije bitno hoćete li ga postaviti na element, pseudoelement ili umetnuti sadržaj - rezultat će biti isti kao kod : iza stakla, ali unutra nešto radi.
.picture (pozadinska slika: url (picture.svg);)
Ova metoda je prikladna za dizajn grafike kojoj nije potrebna interakcija: pozadine, ikone i druge sitnice.
Treći način, kroz
![](https://i2.wp.com/picture.png)
Zapravo, umjesto
Fleksibilnost ima svoju cijenu: zbog činjenice da više nije samo grafika i da se tamo može skriptirati, ovoj metodi se nameću drugi sigurnosni zahtjevi. Na primjer, ne možete samo umetnuti sliku s druge domene.
Ova metoda je prikladna kada trebate umetnuti neku vrstu interaktivne grafike: igračke, grafike i bilo šta složeno. Dovoljno je da se toga jednom prisjetimo
Četvrta metoda je radila kada su pretraživači prepisali svoje HTML parsere na novi standard i sadržaj SVG datoteka se može umetnuti direktno na stranicu, kao i bilo koje druge oznake.
Square
Sa ovim SVG-om možete učiniti isto kao i sa običnim HTML-elementima: stilovi, skripte - pa i sami znate. Na primjer, možete promijeniti boju ispune kada se lebdi i sve opisati općim stilovima.
Loša strana je što se takve slike ne keširaju odvojeno od stranice - iako se to može zaobići kroz simbole i yuz, ali ovo je duga priča, o tome ćemo posebno.
SVG je mnogo više od grafičkog formata - to smo već shvatili. Želite li kopati dublje? Pročitajte članke Sarah Suaydan, ovo je najbolje što postoji do sada. Svi linkovi su u opisu za video.
Na kraju: postoji mnogo načina i svi su na neki način dobri. Odaberite onaj koji odgovara vašim potrebama, ali uvijek počnite s najjednostavnijim: i pozadinu, a onda to zakomplikovati - ako nije dovoljno.
Video verzija