Negli ultimi mesi, il brusio attorno alle immagini SVG è cresciuto e cresciuto. SVG è in giro da anni, ma è solo di recente che ha iniziato a sembrare un vero contendente.
L'hype su SVG non è solo una moda hipster, SVG risolve completamente i problemi che i formati di file come JPG non riescono a risolvere completamente.
Se vuoi iniziare a usare SVG, questo articolo è per te. Ti guiderò attraverso il trasferimento del tuo SVG da Illustrator in HTML e poi ti insegnerò a modificare quell'immagine usando i CSS.
Prima di iniziare, dai un'occhiata la demo Ho messo insieme, questo è quello che costruiremo.
SVG è l'acronimo di Scaleable Vector Graphics e questa prima parola ti darà un'idea del perché SVG sia così popolare. SVG è la controparte perfetta per il design reattivo.
Le immagini SVG sono, al loro interno, un formato di immagine vettoriale basato su XML per la grafica 2D.
La specifica SVG è uno standard aperto sviluppato dal W3C nel 1999, quindi è possibile vedere che è stata utilizzata come tecnologia per un decennio e mezzo di durata in termini di web.
Flusso di lavoro ed efficienza sono troppo preziosi per essere buttati via per un capriccio. Se hai intenzione di passare da JPG o PNG a SVG, hai bisogno di validi motivi, fortunatamente SVG offre molto:
SVG è una tecnologia incredibilmente utile, ed è un mistero per molti perché non ha avuto un effetto più completo.
Ci sono una moltitudine di applicazioni che produrranno SVG, puoi usarne qualcuna. La mia preferenza personale è Adobe Illustrator, quindi è quello che useremo.
Ho appena messo insieme alcune forme e del testo per il nostro SVG:
Come puoi vedere, è una grafica molto semplice, in modo da poter vedere chiaramente cosa sta succedendo nel codice.
Il prossimo passo è salvarlo come SVG. Quindi seleziona File> Salva come.
Vedrai il solito pop-up, e in questo dovrai selezionare il formato SVG; non appena apparirà questo pop-up apparirà:
Questo dialogo ci fornisce due opzioni:
La prima opzione che abbiamo è di fare clic su OK nel pop-up e semplicemente salvare l'immagine come immagine .svg e aggiungerla al nostro HTML come faremmo con un'immagine bitmap:
Questo è assolutamente soddisfacente, e l'immagine sarà ancora in scala se lo si desidera, tuttavia poiché questa opzione è un file incorporato, non avremo le capacità di modifica nel codice sorgente della nostra pagina.
La seconda opzione è quella di accedere direttamente al codice per l'immagine facendo clic sul pulsante Codice SVG .... Puoi quindi copiarlo e incollarlo nel tuo HTML.
Il codice che ho ricevuto è stato:
Questo è l'approccio preferito perché ci permetterà di manipolare l'immagine con i CSS.
Come puoi vedere, il codice è semplice XML e, di conseguenza, è probabilmente abbastanza familiare per chiunque lavori sul Web. Questa familiarità è un grande vantaggio quando si lavora con SVG.
Vedrai anche che ci sono un certo numero di attributi negli elementi XML, i colori dei dettagli e le posizioni; questi sono i valori che manipoleremo in seguito.
Se hai familiarità con XML (non ti preoccupare se non lo sei) vedrai che il codice prodotto da Illustrator è un po 'disordinato. Questo perché ha aggiunto le proprietà CSS di presentazione nell'XML, ingombrandolo.
Quindi il prossimo lavoro che dobbiamo fare è spostare gli aspetti della presentazione nei CSS a cui appartengono.
Possiamo vedere che tutte le nostre forme hanno un colore di riempimento, e questo è uno degli attributi che possiamo facilmente spostare sul nostro CSS. Per fare ciò abbiamo solo bisogno di cancellare l'attributo fill e il valore dall'XML e usare un semplice selettore per definire il colore che vogliamo nella proprietà fill:
rect {fill: #AD6F6F;}circle {fill: #6F9FAA;}polyline {fill: #6FA86F;}
Successivamente, possiamo vedere che nel nostro testo, la maggior parte degli attributi può anche essere trasferita al nostro CSS. Basta eliminare fill, font-family e font-size dall'XML e aggiungerli al CSS:
text {fill: #383838 ;font-family: 'Pacifico-Regular', arial, sans-serif;font-size: 35px;}
Diamo un'occhiata al nostro codice ora:
Puoi vedere che rimuovendo gli attributi di presentazione abbiamo codice molto più leggibile.
Abbiamo spostato i nostri attributi di presentazione dal nostro XML nel nostro CSS, ma questi erano attributi che avevamo già. Possiamo anche aggiungere nuovi attributi.
La prima cosa che voglio fare è aggiungere un tratto al nostro primo cerchio, ma non solo quello, voglio controllare lo spessore e l'opacità. È tutto molto semplice:
circle {stroke: #547178;stroke-width: 5px;stroke-opacity: 0.5;}
Se controlli il tuo file, vedrai che questo aggiunge un tocco alla cerchia, ma lo aggiunge anche al secondo cerchio che non volevamo.
La soluzione è esattamente la stessa di qualsiasi problema di selezione CSS, abbiamo solo bisogno di aggiungere una classe al nostro elemento XML:
E poi, possiamo scegliere come target la classe nel nostro CSS:
circle.stroke {stroke: #547178;stroke-width: 5px;stroke-opacity: 0.5;}
Quasi tutti i CSS possono essere applicati a SVG. Possiamo applicare un effetto hover che aumenterà le dimensioni del nostro carattere, ad esempio:
text:hover {font-size: 40px;}
Se lo verifichi, vedrai che funziona, ma è un po 'una risposta istantanea. Sarebbe molto meglio se usassimo una transizione CSS, che è ovviamente possibile:
text {fill: #383838 ;font-family: 'Pacifico-Regular', arial, sans-serif;font-size: 35px;transition: all 1s ease;}
Se ricarichi la pagina vedrai una transizione delicata nella dimensione del carattere.
Come puoi vedere, SVG ha molto potere dietro di esso. La curva di apprendimento è molto superficiale e le possibilità sembrano infinite. Una singola immagine SVG vale dozzine di immagini bitmap.
Immagine in primo piano / miniatura, immagine di design scalabile via Shutterstock.