{"id":2,"date":"2010-01-31T10:09:25","date_gmt":"2010-01-31T09:09:25","guid":{"rendered":"https:\/\/alistapart.com\/it\/article\/usare-svg-per-un-background-flessibile-scalabile-e-divertente-parte-i\/"},"modified":"2010-01-31T10:09:25","modified_gmt":"2010-01-31T09:09:25","slug":"usare-svg-per-un-background-flessibile-scalabile-e-divertente-parte-i","status":"publish","type":"article","link":"https:\/\/alistapart.com\/it\/article\/usare-svg-per-un-background-flessibile-scalabile-e-divertente-parte-i\/","title":{"rendered":"Usare SVG per un background flessibile, scalabile e divertente, Parte I"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2010\/01\/top1.jpg\" border=\"0\" width=\"170\" height=\"235\" align=\"right\" alt=\"illustrazione per SVG\" \/><\/p>\n<p>SVG, ossia <a href=\"http:\/\/en.wikipedia.org\/wiki\/SVG\">Scalable Vector Graphics<\/a>, consiste di cerchi, rettangoli e percorsi creati in XML e combinati in disegni sulle pagine web. Ad un oggetto SVG si possono applicare colori solidi, gradienti ed un certo numero di filtri sofisticati &#8211; sebbene non tutti i browser implementino tutti i tipi di filtri. Potete incorporarvi del testo cos\u00ec come delle immagini, e potete copiare e clonare il vostro SVG tutte le volte che volete. Principalmente, utilizziamo il formato SVG per programmi di grafica, diagrammi, illustrazioni o animazioni. Tuttavia possiamo incorporare oggetti SVG nel design complessivo di un sito: \u00e8 una potenzialit\u00e0 straordinariamente versatile del web design ed \u00e8 divertente da usare.<\/p>\n<p>In questo articolo introduttivo, far\u00f2 alcune importanti considerazioni su come lavorare con SVG, inclusi il supporto dei browser e l&#8217;accessibilit\u00e0. <a href=\"articoli\/1-numero-zero-febbraio-2010\/13-usare-svg-per-un-background-flessibile-scalabile-e-divertente-parte-ii-\">Leggete la Parte II<\/a> per scoprire come trovare ed adattare alle vostre esigenze oggetti SVG che si trovano online, o come creare il vostro disegno SVG ed aggiungerlo alle vostre pagine web.<\/p>\n<div class=\"paragrafo\">\n<h2>SVG: un po&#8217; di esempi d&#8217;uso<\/h2>\n<p>Molte persone utilizzano SVG nel design del loro sito &#8211; soprattutto per le icone che descrivono l&#8217;argomento di un post (topic icons). Ad esempio, Sam Ruby, l&#8217;attuale co-chair del HTML5 Working Group, <a href=\"http:\/\/intertwingly.net\/blog\/\">usa SVG per annotare i post sul suo blog<\/a> con delle icone che rappresentano l&#8217;argomento di ciascun post. Erik Dahlstrom di Opera <a href=\"http:\/\/my.opera.com\/MacDev_ed\/blog\/\">fa lo stesso<\/a>, cos\u00ec come Jeff Schiller su <a href=\"http:\/\/codedread.com\/\">Codedread<\/a>. Jeff va oltre le icone, incorporando SVG nella barra del menu con effetto fisheye, cos\u00ec come nella grafica che circonda il contenuto del suo sito. Il sito <a href=\"http:\/\/emacsformacosx.com\/\">Emacs for Mac OS X<\/a> \u00e8 realizzato in gran parte con SVG: provate a ridimensionare la pagina web per vedere in azione la funzione &#8220;scaling&#8221; (ridimensionamento) di SVG. Io ho usato SVG per creare un <a href=\"http:\/\/burningbird.net\/technology\/color-sampling-and-svg-gradients\/\">gradiente selezionando un colore dalla foto<\/a> che viene visualizzata di volta in volta (ricaricate la pagina un paio di volte per vedere l&#8217;effetto), cos\u00ec come per un <a href=\"http:\/\/svgfeed.burningbird.net\/\">elemento di sfondo stravagante<\/a> e per dare un <a href=\"http:\/\/frugalalgorithm.burningbird.net\/\">tema generale che caratterizzi ed unisca i miei siti web<\/a>.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Quando si pu\u00f2 e quando non si pu\u00f2 usare SVG<\/h2>\n<p>SVG si pu\u00f2 usare ovunque si usi una GIF, un JPEG o un PNG. Con SVG si forniscono le istruzioni di disegno piuttosto che una bitmap. Essendo SVG un formato grafico vettoriale, si pu\u00f2 ridimensionare perch\u00e9 risulti adatto alla pagina web, mentre le immagini bitmap come i JPEG e le GIF non si possono ridimensionare, o perlomeno non si ridimensionano in maniera impeccabile. La propriet\u00e0 del ridimensionamento (scaling) \u00e8 particolarmente comoda quando gli utenti accedono alle pagine web da device piccoli come gli iPhone o grandi come monitor da 32 pollici. Per dimostrare ci\u00f2, osservate la Figura 1, che \u00e8 uno snapshot del sito EMACS for OS X la prima volta che lo si \u00e8 aperto in un browser. La Figura 2 mostra lo stesso sito, ma con la finestra del browser ristretta verticalmente: notate come l&#8217;immagine si restringa per adattarsi alla pagina, ridimensionandosi in maniera tale che le proporzioni dell&#8217;immagine siano sempre preservate.<br \/>Non importa quanto sia larga la pagina, l&#8217;immagine si ridimensiona di conseguenza, senza effetti di spixellamento.<\/p>\n<div class=\"centered\">\n    <img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2010\/01\/figure1.png\" border=\"0\" alt=\"Fig 1. Snapshot del sito EMACS for OS X\" width=\"525\" height=\"301\" style=\"border: 0pt none;\" \/><\/p>\n<p class=\"didascalia\">Fig. 1. Snapshot del sito EMACS for OS X <\/p>\n<\/p><\/div>\n<div class=\"centered\">\n    <img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2010\/01\/figure2.png\" border=\"0\" alt=\"Fig 2. Lo stesso sito con una dimensione diversa della finestra del browser\" width=\"522\" height=\"198\" style=\"border: 0pt none;\" \/><\/p>\n<p>Fig. 2. Lo stesso sito con una dimensione diversa della finestra del browser<\/p>\n<\/p><\/div>\n<p>SVG pu\u00f2 anche essere &#8220;bandwith-friendly&#8221;: non importa quanto sia grande l&#8217;oggetto grafico, il file XML che lo descrive \u00e8 l&#8217;unica cosa trasmessa al client. Dai millimetri ai metri, la richiesta di banda per l&#8217;oggetto grafico \u00e8 la stessa, cosa che rende SVG un&#8217;alternativa attrattiva quando una grafica deve riempire lo sfondo di una pagina web, senza doversi ripetere<br \/>Per quanto SVG possa essere divertente, ci sono delle circostanze in cui \u00e8 meglio non usarlo. Ad esempio, si pu\u00f2 convertire una foto in un tracciato SVG, ma la conversione non sar\u00e0 mai a livello del singolo pixel. Inoltre, i device client si bloccheranno se l&#8217;oggetto grafico \u00e8 troppo complicato.<br \/>Ho convertito un&#8217;immagine JPEG piuttosto complessa in un <a href=\"http:\/\/burningbird.net\/svg\/garden5.svg\">file SVG<\/a> che uso per fare test: non solo ha fatto bloccare la prima beta release di Chrome, ma lo stesso browser ha fatto bloccare il mio computer cercando di processare il file SVG.<br \/>Quindi: no, SVG non pu\u00f2 rimpiazzare le foto o le immagini complesse, ma per tutto il resto va abbastanza bene.<br \/>Prima di sporcarci le mani con SVG nella seconda parte di questo articolo, \u00e8 importante conoscere come i browser supportino SVG e le sue caratteristiche di accessibilit\u00e0.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Supporto Browser<\/h2>\n<p>La maggior parte dei browsers &#8211; Firefox, Chrome, Safari e Opera &#8211; supporta SVG, sia come file caricato in un oggetto sia direttamente inserito nel XHTML. Jeff Schiller, che ho menzionato prima, <a href=\"http:\/\/www.codedread.com\/svg-support.php\">ha creato ed aggiorna un grafico<\/a> che mostra in dettaglio come i vari browsers supportino SVG. Come si evince dal grafico, la maggior parte dei browsers supporta le funzioni base di SVG. Queste includono il supporto per i font, per le immagini, per gli elementi grafici come cerchi o percorsi (paths) cos\u00ec come i gradienti ed alcuni filtri. Solo le funzioni pi\u00f9 esoteriche non sono supportate. Tuttavia, la mancanza di funzioni pi\u00f9 avanzate non dovrebbe influenzare l&#8217;utilizzo di SVG nel design di un sito, n\u00e9 tantomeno raccomando l&#8217;uso di immagini SVG oltremodo complesse come sfondo di una pagina: pi\u00f9 un&#8217;immagine \u00e8 complessa, pi\u00f9 tempo occorrer\u00e0 al browser per visualizzarla.<br \/>Inoltre, pensateci due volte prima di utilizzare sfondi animati, poich\u00e9 molte persone sono innervosite da una pagina che ha troppo movimento, specialmente se si tratta di movimento non controllabile disabilitando JavaScript. Come ho appena detto, la maggior parte dei browsers supporta le funzioni base di SVG. L&#8217;eccezione illustre \u00e8 Internet Explorer.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Internet Explorer e SVG<\/h2>\n<p>Vi sto incoraggiando ad usare SVG, ma come ho mostrato nell&#8217;ultimo paragrafo, uno dei maggiori browser attualmente non supporta SVG e quel browser \u00e8 Internet Explorer. Fortunatamente per noi, la mancanza di supporto per SVG di IE non \u00e8 pi\u00f9 un ostacolo come una volta. Librerie come <a href=\"http:\/\/code.google.com\/p\/svgweb\/\">SVGWeb,<\/a> <a href=\"http:\/\/www.amplesdk.com\/\">Ample SDK<\/a> e <a href=\"http:\/\/raphaeljs.com\/\">Raphael<\/a> abilitano il supporto per SVG nelle attuali e passate versioni di IE. Inoltre, la specifica HTML5 <a href=\"http:\/\/dev.w3.org\/html5\/spec\/Overview.html#svg-0\">rende possibile l&#8217;inserimento di SVG in HTML,<\/a> dove prima era solo supportato con XHTML. Questo aumento nel supporto del document type sommato alla notizia recente riguardo l&#8217;adesione di Microsoft al W3C SVG Working Group fanno ben sperare che alla fine IE supporter\u00e0 direttamente SVG &#8211; forse addirittura da IE9. Nel contempo, l&#8217;accesso al web tramite dispositivi mobili \u00e8 in aumento e nessuno dei pi\u00f9 popolari device handheld dipende da IE. In aggiunta a ci\u00f2, la recente popolarit\u00e0 del design minimalista pu\u00f2 essere usata per introdurre efficacemente SVG nei vostri siti web: se un sito ha un design attraente ma minimalista, SVG pu\u00f2 essere aggiunto come notazione divertente e non importa se SVG viene mostrato oppure no. I siti che usano SVG menzionati precedentemente o forniscono una grafica di ripiego nel caso in cui SVG non sia implementato o hanno un aspetto gradevole senza SVG o chiedono al lettore di considerare la migrazione verso un browser che supporti SVG. (Non stupitevi dell&#8217;ultima opzione: questo approccio ha funzionato per IE 4.x durante la guerra dei browsers pi\u00f9 di dieci anni fa.)<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>E per quel che riguarda l&#8217;accessibilit\u00e0?<\/h2>\n<p>SVG ha la capacit\u00e0 di fornire testi corti o lunghi in alternativa alle immagini. Dal momento che \u00e8 basato su un linguaggio di markup, potete facilmente aggiungere sia il titolo sia la descrizione attraverso gli elementi title e desc, come mostrato di seguito. Sfortunatamente, il supporto degli<br \/>screen reader per tali elementi \u00e8 scarso, e questo crea una sfida per i siti che usano SVG nel caso in cui l&#8217;accessibilit\u00e0 sia un requisito.<\/p>\n<pre>\n<code>\n&lt;svg xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.0\"  \n  xmlns=\"http:\/\/www.w3.org\/2000\/svg\"&gt;\n&lt;title&gt;Chimp on a tightrope&lt;\/title&gt;\n&lt;desc&gt;Older chimp walking across a tightrope between \n two trees at the St. Louis Zoo&lt;\/desc&gt;\n&lt;image xlink:href=\"chimp.jpg\" x=\"0\" y=\"0\" height=\"402\" width=\"600\" \/&gt;\n&lt;\/svg&gt; \n<\/code>\n<\/pre>\n<p>Il title \u00e8 tipicamente richiamato come titolo del documento in un SVG a s\u00e9 stante. Sia title che desc possono anche usare del markup complesso proveniente da altri namespaces. Inoltre, per metadata pi\u00f9 complessi, c&#8217;\u00e8 l&#8217;elemento metadata, che contiene RDF\/XML per cose come il copyright e le informazioni sull&#8217;autore. Poich\u00e9 il supporto degli screen readers per SVG \u00e8 scarso, potete usare o un processing server-side o XSLT per utilizzare le informazioni di accessibilit\u00e0 da un SVG embedded e generare il contenuto in HTML partendo dagli elementi title, desc e metadata.<br \/>Per le immagini di sfondo e per quelle decorative, dovreste minimizzare la quantit\u00e0 di markup in SVG; in queste situazioni gli elementi title e desc potrebbero non essere necessari. Per ulteriori informazioni sull&#8217;accessibilit\u00e0 e SVG, leggete l&#8217;originale \u201c<a href=\"http:\/\/www.w3.org\/TR\/SVG-access\/\">Note on SVG and Accessibility<\/a>\u201d del W3C, \u201c<a href=\"http:\/\/www.iheni.com\/just-how-accessible-is-svg\/\">Just how accessible is SVG?<\/a>\u201d di Henny Swan e \u201c<a href=\"http:\/\/www.w3.org\/TR\/SVGMobile12\/access.html\">SVG Accessibility Guidelines for SVG 1.2<\/a>\u201d.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Pronti per tuffarsi<\/h2>\n<p>Ora che abbiamo visto aspetti importanti come il supporto browser e l&#8217;accessibilit\u00e0, cos\u00ec come i vantaggi dell&#8217;uso di SVG, \u00e8 ora di tuffarci nel divertimento. Il <a href=\"articoli\/1-numero-zero-febbraio-2010\/13-usare-svg-per-un-background-flessibile-scalabile-e-divertente-parte-ii-\">secondo articolo<\/a> descrive come incorporare SVG nelle vostre pagine cos\u00ec che il vostro design funzioni su tutti i browsers, dove si possono trovare dei files SVG gratis e come usare uno dei pi\u00f9 noti (e gratis) tool di grafica vettoriale per modificare o creare i vostri design SVG.<\/p>\n<\/div>\n<div id=\"credits\">\n<ul>\n<li>Illustrazioni create da <a href=\"http:\/\/www.mondonascosto.com\/\">Carlo Brigatti<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>SVG, ossia Scalable Vector Graphics, consiste di cerchi, rettangoli e percorsi creati in XML e combinati in disegni sulle pagine web. Ad un oggetto SVG si possono applicare colori solidi, gradienti ed un certo numero di filtri sofisticati &#8211; sebbene non tutti i browser implementino tutti i tipi di filtri. Potete incorporarvi del testo cos\u00ec come delle immagini, e potete copiare e clonare il vostro SVG tutte le volte che volete. Principalmente, utilizziamo il formato SVG per programmi di grafica, diagrammi, illustrazioni o animazioni. Tuttavia possiamo incorporare oggetti SVG nel design complessivo di un sito: \u00e8 una potenzialit\u00e0 straordinariamente versatile del web design ed \u00e8 divertente da usare.<br \/>\nIn questo articolo introduttivo, far\u00f2 alcune importanti considerazioni su come lavorare con SVG, inclusi il supporto dei browser e l&#8217;accessibilit\u00e0. Leggete la Parte II (mettere il link alla seconda parte tradotta) per scoprire come trovare ed adattare alle vostre esigenze oggetti SVG che si<\/p>\n","protected":false},"author":818,"featured_media":7000564,"comment_status":"open","ping_status":"open","template":"","categories":[242,258,247,2],"tags":[],"coauthors":[283],"class_list":["post-2","article","type-article","status-publish","has-post-thumbnail","hentry","category-browser","category-graphic-design","category-html","category-numero-zero-febbraio-2010"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/article\/2","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/types\/article"}],"author":[{"embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/users\/818"}],"replies":[{"embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/comments?post=2"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/media\/7000564"}],"wp:attachment":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/media?parent=2"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/categories?post=2"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/tags?post=2"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/coauthors?post=2"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}