{"id":71,"date":"2010-06-08T10:54:52","date_gmt":"2010-06-08T08:54:52","guid":{"rendered":"https:\/\/alistapart.com\/it\/article\/web-design-reattivo\/"},"modified":"2010-06-08T10:54:52","modified_gmt":"2010-06-08T08:54:52","slug":"web-design-reattivo","status":"publish","type":"article","link":"https:\/\/alistapart.com\/it\/article\/web-design-reattivo\/","title":{"rendered":"Responsive Web Design"},"content":{"rendered":"<blockquote>\n<p>Il controllo che i designer possono esercitare nella stampa, e che spesso desiderano anche nel web, \u00e8 semplicemente una funzione dei limiti della pagina stampata. Dovremmo accettare l&#8217;idea che il web non ha gli stessi limiti e pertanto progettare avendo in mente la sua flessibilit\u00e0. Ma prima di tutto, dobbiamo accettare il flusso ed il riflusso delle cose.<\/p>\n<address><cite>John Allsopp<\/cite>, \u201c<a href=\"http:\/\/www.alistapart.com\/articles\/dao\/\">A Dao of Web Design<\/a>\u201d<\/address>\n<\/blockquote>\n<p><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2010\/06\/liquid.png\" border=\"0\" align=\"left\" \/>L&#8217;architetto inglese Christopher Wren una volta fece una battuta affermando che il suo settore \u201cmira all&#8217;Eternit\u00e0\u201d e c&#8217;\u00e8 qualcosa di affascinante in questa formula: a differenza del web, di cui spesso si ha l&#8217;impressione che aspiri alla prossima settimana, l&#8217;architettura \u00e8 una disciplina molto ben definita dalla sua stabilit\u00e0. Le fondamenta di una costruzione ne definiscono il suo ingombro, che definisce la sua struttura portante, che d\u00e0 forma alla facciata. Ogni fase del processo architetturale \u00e8 pi\u00f9 immutabile e pi\u00f9 costante rispetto alla precedente. Le decisioni creative danno quasi letteralmente forma ad uno spazio fisico, definendo il modo in cui le persone si muovono attraverso i suoi confini per decenni o addirittura secoli.<\/p>\n<p>Lavorare sul web, comunque, \u00e8 una questione totalmente differente. Il nostro lavoro \u00e8 definito dalla sua transitoriet\u00e0, spesso modificato o sostituito nel giro di un anno o due. Larghezze delle finestre inconsistenti, differenti risoluzioni dei monitor, preferenze degli utenti ed i font installati dai nostri utenti sono solo alcune delle cose intangibili che negoziamo quando pubblichiamo il nostro lavoro: nel corso degli anni, siamo diventati incredibilmente esperti nel fare ci\u00f2.<\/p>\n<p>Tuttavia il panorama sta cambiando, forse pi\u00f9 velocemente di quanto preferiremmo. Si stima che la navigazione internet mediante dispositivi mobili sopravanzer\u00e0 quella attraverso dispositivi desktop in un periodo che va dai <a href=\"http:\/\/www.mediapost.com\/publications\/?fa=Articles.showArticle&#038;art_aid=120590\">tre<\/a> ai <a href=\"http:\/\/www.morganstanley.com\/institutional\/techresearch\/mobile_internet_report122009.html\">cinque anni<\/a>. Due delle tre console di gioco che dominano il mercato sono dotate di browser web (e <a href=\"http:\/\/www.opera.com\/devices\/wii\/\">uno di questi<\/a> \u00e8 di tutto rispetto). Dobbiamo progettare per i mouse e le tastiere, per i tastierini T9, per i controller di gioco handheld, per le interfacce touch. Per farla breve, ci troviamo di fronte ad un numero maggiore di device, di modi di input e di browser di quelli a cui siamo stati abituati finora.<\/p>\n<p>Negli anni recenti, ho avuto sempre pi\u00f9 spesso a che fare con aziende che richiedevano \u201cun sito per iPhone\u201d come parte del loro progetto. \u00c8 una frase interessante: in apparenza, ovviamente, parla della qualit\u00e0 di WebKit come browser per dispositivi mobili, cos\u00ec come di un <a href=\"http:\/\/en.wikipedia.org\/wiki\/Business_case\">business case<\/a> che ci fa andare oltre il desktop. Ma come designer, penso che spesso tali richieste esplicite ci diano conforto, perch\u00e9 ci permettono di dividere in scomparti i problemi che ci si parano davanti. Possiamo confinare l&#8217;esperienza mobile su <a href=\"http:\/\/m.nytimes.com\/\">sottodomini<\/a> <a href=\"http:\/\/webkit.dailykos.com\/\">separati<\/a>, spazi distinti e separati dal \u201csito non-iPhone\u201d. Ma cosa verr\u00e0 dopo? Un sito iPad? Un sito per N90? Possiamo davvero continuare a impegnarci a supportare qualunque nuovo user agent con la sua esperienza su misura? Ad un certo punto, questo comincia a sembrare un gioco privo di senso. Ma come possiamo noi ed i nostri progetti adattarci a questa situazione?<\/p>\n<div class=\"paragrafo\">\n<h2>Fondamenta Flessibili<\/h2>\n<p>Consideriamo un <a href=\"https:\/\/alistapart.github.io\/code-samples\/responsive-web-design\/ex\/ex-site-flexible.html\">progetto di esempio<\/a>. Ho creato una semplice pagina per un magazine ipotetico; \u00e8 un layout semplice a due colonne costruito su una <a href=\"http:\/\/www.alistapart.com\/articles\/fluidgrids\/\">griglia fluida<\/a> [fluid grid, <em>ndr<\/em>], con qualche <a href=\"http:\/\/unstoppablerobotninja.com\/entry\/fluid-images\">immagine flessibile<\/a> qua e l\u00e0. Essendo io un sostenitore da molto tempo dei layout non fissi, ho creduto per molto tempo che fossero \u201ca prova di futuro\u201d semplicemente perch\u00e9 erano agnostici rispetto al layout. E, in una certa misura, questo \u00e8 vero: i design flessibili non fanno assunzioni riguardo alla larghezza della finestra del browser e si adattano tranquillamente ai device che hanno le modalit\u00e0 di visualizzazione orizzontale e verticale.<\/p>\n<div class=\"illustration full left\"><a href=\"https:\/\/alistapart.github.io\/code-samples\/responsive-web-design\/ex\/ex-site-larger.html\"><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2010\/06\/f-img-default-wide.jpg\" border=\"0\" \/><\/a><\/p>\n<p>Le immagini giganti sono giganti. Il nostro layout, per quanto flessibile, non risponde bene ai cambi di risoluzione o alle variazioni di grandezza del viewport.<\/p>\n<\/div>\n<p>Tuttavia, nessun design, flessibile o fluido che sia, si scala in maniera invisibile oltre il contesto per cui era stato originariamente progettato. Il <a href=\"https:\/\/alistapart.github.io\/code-samples\/responsive-web-design\/ex\/ex-site-flexible.html\">progetto d&#8217;esempio<\/a> si scala perfettamente a seconda del ridimensionamento della finestra del browser, ma a basse risoluzioni appaiono subito dei punti di rottura. Quando lo si visualizza in viewport pi\u00f9 piccole di 800\u00d7600, l&#8217;illustrazione dietro al logo viene presto tagliata, il testo di navigazione pu\u00f2 andare a capo in modo sconveniente e le immagini lungo il bordo inferiore divengono troppo appiccicate per apparire leggibili. E non \u00e8 solo il lato inferiore dello spettro della risoluzione ad essere interessato: quando si guarda questo design su un grande monitor, le immagini diventano presto ingombranti per le loro dimensioni, riempendo il contesto circostante.<\/p>\n<p>In breve, il nostro design flessibile funziona abbastanza bene nel contesto centrato sul desktop per cui \u00e8 stato progettato, ma non \u00e8 ottimizzato per estendersi molto oltre questo.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Diventare reattivi<\/h2>\n<p>Recentemente, una disciplina emergente chiamata \u201c<dfn>architettura reattiva<\/dfn>\u201d ha cominciato a chiedersi come gli spazi fisici possano <em>reagire<\/em> alla presenza delle persone che li attraversano. Attraverso una combinazione di robotica incorporata e materiali di trazione, gli architetti stanno sperimentando con <a href=\"http:\/\/robotecture.com\/bubble\/\">installazioni artistiche<\/a> e <a href=\"http:\/\/vimeo.com\/4661618\">pareti in muratura<\/a> che si piegano, flettono ed espandono all&#8217;avvicinarsi della gente ad esse. I sensori di movimento possono essere accoppiati con i sistemi di controllo del clima per regolare la temperatura di una stanza e l&#8217;illuminazione dell&#8217;ambiente a seconda di quanta gente vi sia al suo interno. Ci sono aziende che hanno gi\u00e0 prodotto una <a href=\"http:\/\/www.smartglassinternational.com\/\">\u201ctecnologia per vetri intelligenti\u201d che diventano opachi automaticamente<\/a> quando gli occupanti di una stanza raggiungo una certa soglia di densit\u00e0, dando cos\u00ec ulteriore privacy.<\/p>\n<p>Nel loro libro <cite>Interactive Architecture<\/cite>, Michael Fox e Miles Kemp descrivono questo approccio pi\u00f9 adattivo come un \u201csistema multiple-loop in cui qualcuno entra nella conversazione, <em>uno scambio continuo e costruttivo di informazioni<\/em>.\u201d Enfatizzo io, poich\u00e9 ritengo che ci sia una sottile ma forte distinzione: piuttosto che creare spazi immutabili, che non cambiano per definire una particolare esperienza, suggeriscono che gli abitanti e la struttura possono\u2014e dovrebbero\u2014 influenzarsi reciprocamente.<\/p>\n<p>Questo \u00e8 il nostro futuro. Piuttosto che creare design sconnessi per un numero sempre crescente di device web, dovremmo trattarli come aspetti della stessa esperienza. Possiamo disegnare per un&#8217;esperienza visiva ottimale, ma incorporare le tecnologie basate sugli standard all&#8217;interno dei nostri design per renderli non solo pi\u00f9 flessibili, ma anche pi\u00f9 adattabili al media che li rende. In breve, dobbiamo fare pratica con il <em>responsive web design<\/em>. Ma come?<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Vi presento la \u201cmedia query\u201d<\/h2>\n<p>Fin dai tempi di <abbr title=\"Cascading Style Sheets level 2.1\">CSS 2.1<\/abbr>, i nostri fogli di stile hanno goduto, in qualche misura, della consapevolezza dell&#8217;esistenza di vari device attraverso i <a href=\"http:\/\/www.w3.org\/TR\/CSS21\/media.html\"><dfn>media types<\/dfn><\/a>. Se avete in qualche occasione scritto un <a href=\"http:\/\/www.alistapart.com\/articles\/goingtoprint\/\">foglio di stile per la stampa<\/a>, avete gi\u00e0 familiarit\u00e0 con il concetto:<\/p>\n<pre><code><link rel=\"stylesheet\" type=\"text\/css\" href=\"core.css\"<br \/>  media=\"screen\" \/><br \/><br \/>\t<link rel=\"stylesheet\" type=\"text\/css\" href=\"print.css\"<br \/>  media=\"print\" \/><br \/>  <\/code><\/pre>\n<p>Nella speranza di poter progettare qualcosa di pi\u00f9 che stampe di pagine ben formattate, la specifica <abbr title=\"Cascading Style Sheets\">CSS<\/abbr> ci ha fornito una collezione di <a href=\"http:\/\/www.w3.org\/TR\/CSS21\/media.html#media-types\">media type accettabili<\/a>, ciascuno pensato per avere come obiettivo una specifica classe di device web-ready. Ma la maggior parte dei browser e dei device non ha mai accolto in pieno lo spirito della specifica, lasciando un&#8217;<a href=\"http:\/\/www.alistapart.com\/articles\/return-of-the-mobile-stylesheet\">implementazione imperfetta<\/a> per molti media type, oppure ignorandoli totalmente.<\/p>\n<p>Grazie al cielo, il <abbr title=\"World Wide Web Consortium\">W3C<\/abbr> ha creato le <a href=\"http:\/\/www.w3.org\/TR\/css3-mediaqueries\/\"><dfn>media queries<\/dfn><\/a> come parte della specifica <abbr title=\"Cascading Style Sheets level 3\">CSS3<\/abbr>, migliorando le possibilit\u00e0 dei media types. Una media query ci permette di avere come obiettivo non solo certe classi di device, ma di ispezionare per davvero le caratteristiche del device che rende il nostro lavoro. Ad esempio, facendo seguito alla recente ascesa di WebKit mobile, le media queries sono diventate una tecnica client-side popolare per inviare un foglio di stile su misura agli iPhone, ai telefoni Android e agli altri generi di telefono. Per fare ci\u00f2, potremmo incorporare una query nell&#8217;attributo <code>media<\/code> di un foglio di stile collegato.<\/p>\n<pre><code><link rel=\"stylesheet\" type=\"text\/css\"<br \/>  media=\"screen and (max-device-width: 480px)\"<br \/>  href=\"shetland.css\" \/><\/code><\/pre>\n<p>La query contiene due componenti:<\/p>\n<ol>\n<li>un media type (<code>screen<\/code>),<\/li>\n<li>l&#8217;effettiva query racchiusa tra parentesi, contenente una particolare <dfn>media feature<\/dfn> (<code>max-device-width<\/code>) da ispezionare, seguita dal valore target (<code>480px<\/code>).<\/li>\n<\/ol>\n<p>In italiano corrente, stiamo chiedendo al device se la sua risoluzione orizzontale (<code>max-device-width<\/code>) \u00e8 uguale o minore di <code>480px<\/code>. Se questo test passa\u2014in altre parole, se stiamo vedendo il nostro lavoro su un device con uno schermo piccolo come l&#8217;iPhone\u2014allora il device caricher\u00e0 <code>shetland.css<\/code>. Altrimenti, il <code>link<\/code> \u00e8 ignorato in toto.<\/p>\n<p>I designer hanno fatto esperimenti con layout coscienti della risoluzione in passato, per la maggior parte basandosi su soluzioni guidate da <abbr title=\"JavaScript\">JS<\/abbr>, come <a href=\"http:\/\/www.themaninblue.com\/experiment\/ResolutionLayout\/\">l&#8217;eccellente script di Cameron Adams<\/a>. Ma la media query fornisce <a href=\"http:\/\/www.w3.org\/TR\/css3-mediaqueries\/#media1\">una moltitudine di features<\/a> che si estendono ben oltre la risoluzione dello schermo, ampliando enormemente la sfera di quello che pu\u00f2 essere testato con le nostre queries. Inoltre, si possono testare valori multipli di una propriet\u00e0 in una singola query, collegandoli insieme con la keyword <code>and<\/code>:<\/p>\n<pre>    <code><link rel=\"stylesheet\" type=\"text\/css\"<br \/>       media=\"screen and (max-device-width: 480px) and (resolution: 163dpi)\"<br \/>       href=\"shetland.css\" \/><br \/>    <\/code><br \/>  <\/pre>\n<p>In aggiunta a ci\u00f2, non ci limitiamo ad incorporare le media queries nei nostri <code>link<\/code>: possiamo includerle nel nostro <abbr title=\"Cascading Style Sheets\">CSS<\/abbr> sia come parte di una regola <code>@media<\/code>:<\/p>\n<pre>\t<code>@media screen and (max-device-width: 480px) {<br \/>  \t        .column {<br \/>    \t\t   float: none;<br \/>  \t\t}<br \/>\t      }<br \/>\t<\/code><br \/>  <\/pre>\n<p>sia come parte di una direttiva <code>@import<\/code><\/p>\n<pre><code>@import url(\"shetland.css\") screen and (max-device-width: 480px);<\/code><\/pre>\n<p>Tuttavia, in ciascun caso, l&#8217;effetto \u00e8 il medesimo: se il device passa il test posto dalla nostra media query, il <abbr title=\"Cascading Style Sheets\">CSS<\/abbr> adeguato viene applicato al nostro markup. Le media queries, in breve, sono dei <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms537512(VS.85).aspx\">commenti condizionali<\/a> per noi altri: piuttosto che avere come target una specifica versione di uno specifico browser, possiamo correggere chirurgicamente dei problemi nel nostro layout al suo scalarsi oltre la sua iniziale ed ideale risoluzione.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Adattarsi, reagire e risolvere<\/h2>\n<p>Poniamo di nuovo l&#8217;attenzione sulle immagini alla base della nostra pagina. Nel loro layout di default, il <abbr title=\"Cascading Style Sheets\">CSS<\/abbr> adeguato attualmente \u00e8 cos\u00ec:<\/p>\n<pre>    <code>.figure {<br \/>            float: left;<br \/>  \t    margin: 0 3.317535545023696682% 1.5em 0;   \/* 21px \/ 633px *\/<br \/>  \t    width: 31.121642969984202211%;             \/* 197px \/ 633px *\/<br \/>\t  }<br \/><br \/>\t  li#f-mycroft, li#f-winter {<br \/>  \t    margin-right: 0;<br \/>\t  }<br \/>    <\/code><br \/>  <\/pre>\n<p>Ho omesso numerose propriet\u00e0 tipografiche per concentrarmi solo sul layout: ciascun elemento <code>.figure<\/code> \u00e8 di dimensione circa un terzo della colonna che la contiene, con il margine destro messo a zero per ciascuna delle due figure alla fine di ciascuna riga (<code>li#f-mycroft, li#f-winter<\/code>). Questo funziona abbastanza bene, finch\u00e9 la viewport \u00e8 o notevolmente pi\u00f9 piccola o pi\u00f9 grande che nella nostra grafica originale. Con le media queries, possiamo applicare aggiustamenti puntigliosi specifici per ciascuna risoluzione, adattando il nostro design a rispondere meglio ai cambiamenti nella visualizzazione.<\/p>\n<p>Per prima cosa, linearizziamo la nostra pagina una volta che la viewport rientra sotto una certa soglia di risoluzione\u2014facciamo <code>600px<\/code>. Cos\u00ec, in fondo al nostro foglio di stile creiamo un nuovo blocco <code>@media<\/code>, in questo modo:<\/p>\n<pre>    <code>@media screen and (max-width: 600px) {<br \/>  \t    .mast,<br \/>  \t    .intro,<br \/>\t    .main,<br \/>  \t    .footer {<br \/>    \t       float: none;<br \/>    \t       width: auto;<br \/>  \t    }<br \/>\t  }<br \/>     <\/code><br \/>  <\/pre>\n<p>Se andate a vedere la <a href=\"https:\/\/alistapart.github.io\/code-samples\/responsive-web-design\/ex\/ex-site-linearize.html\">nostra pagina aggiornata<\/a> in un browser desktop moderno e riducete la dimensione della finestra sotto i <code>600px<\/code>, la media query disabiliter\u00e0 i float negli elementi maggiori del design, impilando ciascun blocco uno sull&#8217;altro nel flusso del documento. Quindi, il nostro design miniaturizzato sta prendendo forma in maniera carina, ma le immagini non si riducono ancora cos\u00ec intelligentemente. Se introduciamo una nuova media query, possiamo alterare il loro layout di conseguenza:<\/p>\n<pre>    <code>@media screen and (max-width: 400px) {<br \/>            .figure,<br \/>  \t    li#f-mycroft {<br \/>    \t      margin-right: 3.317535545023696682%;    \/* 21px \/ 633px *\/<br \/>    \t      width: 48.341232227488151658%;          \/* 306px \/ 633px *\/<br \/>  \t    }<br \/><br \/>\t    li#f-watson,<br \/>  \t    li#f-moriarty {<br \/>    \t      margin-right: 0;<br \/>  \t    }<br \/>\t  }<br \/>     <\/code><br \/>   <\/pre>\n<div class=\"illustration half left\"><a href=\"https:\/\/alistapart.github.io\/code-samples\/responsive-web-design\/ex\/ex-site-mini.html\"><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2010\/06\/f-img-narrow.jpg\" border=\"0\" \/><\/a><\/p>\n<p>Le nostre figure possono cambiare in maniera reattiva il proprio layout <a href=\"https:\/\/alistapart.github.io\/code-samples\/responsive-web-design\/ex\/ex-site-mini.html\">per adattarsi meglio ai display pi\u00f9 piccoli<\/a>.<\/p>\n<\/div>\n<p>Non badate alle percentuali sgradevoli: stiamo semplicemente ricalcolando le larghezze della <a href=\"http:\/\/www.alistapart.com\/articles\/fluidgrids\/\">griglia fluida<\/a> per far tornare il nuovo layout linearizzato. In breve, <a href=\"https:\/\/alistapart.github.io\/code-samples\/responsive-web-design\/ex\/ex-site-mini.html\">stiamo passando da un layout a tre colonne ad uno a due colonne<\/a>, quando la larghezza della viewport scende sotto i <code>400px<\/code>, rendendo le immagini pi\u00f9 prominenti.<\/p>\n<p>In effetti, potremmo usare lo stesso approccio per i display con schermi molto grandi. Per le grandi risoluzioni, possiamo adottare un piazzamento di sei immagini in orizzontale, mettendole <a href=\"https:\/\/alistapart.github.io\/code-samples\/responsive-web-design\/ex\/ex-site-larger.html\">tutte su una stessa riga<\/a>:<\/p>\n<pre class=\"bump\">    <code>@media screen and (min-width: 1300px) {<br \/>             .figure,<br \/>             li#f-mycroft {<br \/>               margin-right: 3.317535545023696682%;    \/* 21px \/ 633px *\/<br \/>               width: 13.902053712480252764%;          \/* 88px \/ 633px *\/<br \/>             }<br \/>          }<br \/>    <\/code><br \/>   <\/pre>\n<p>Adesso le nostre immagini stanno bene <a href=\"d\/responsive-web-design\/ex\/ex-site-larger.html\">in ciascun estremo del range delle risoluzioni<\/a>, avendo ottimizzato il loro layout affinch\u00e9 cambi a seconda della larghezza della finestra e della risoluzione del device.<\/p>\n<div class=\"illustration full left\"><a href=\"https:\/\/alistapart.github.io\/code-samples\/responsive-web-design\/ex\/ex-site-larger.html\"><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2010\/06\/f-img-widescreen.jpg\" border=\"0\" \/><\/a><\/p>\n<p>Specificando una maggiore <code>min-width<\/code> in una nuova media query, possiamo spostare le nostre immagini su una <a href=\"https:\/\/alistapart.github.io\/code-samples\/responsive-web-design\/ex\/ex-site-larger.html\">singola riga<\/a>.<\/p>\n<\/div>\n<p>Ma questo \u00e8 solo l&#8217;inizio. Lavorando a partire dalle media queries che abbiamo inserito nel nostro <abbr title=\"Cascading Style Sheets\">CSS<\/abbr>, possiamo alterare molto di pi\u00f9 del piazzamento di poche immagini: possiamo <a href=\"https:\/\/alistapart.github.io\/code-samples\/responsive-web-design\/ex\/ex-site-FINAL.html\">introdurre nuovi ed alternativi layout<\/a> in accordo con ciascun range di risoluzione, magari rendendo la navigazione pi\u00f9 prominente in una vista widescreen o riposizionandola sopra il logo nei display pi\u00f9 piccoli.<\/p>\n<div class=\"illustration full left\"><a href=\"https:\/\/alistapart.github.io\/code-samples\/responsive-web-design\/ex\/ex-site-FINAL.html\"><img decoding=\"async\" src=\"http:\/\/alistapart.com\/it\/wp-content\/uploads\/sites\/2\/2010\/06\/f-nav-narrow.jpg\" border=\"0\" \/><\/a><\/p>\n<p>Progettando in maniera reattiva, possiamo non solo linearizzare il nostro contenuto sui device pi\u00f9 piccoli, ma anche <a href=\"https:\/\/alistapart.github.io\/code-samples\/responsive-web-design\/ex\/ex-site-FINAL.html\">ottimizzare la sua presentazione su un certo range di display<\/a>.<\/p>\n<\/div>\n<p>Tuttavia, il responsive design non \u00e8 limitato ai cambi di layout. Le media queries ci permettono di mettere in atto alcune ottimizzazioni incredibili quando le nostre pagine si trasformano: possiamo aumentare l&#8217;area target dei link per gli schermi pi\u00f9 piccoli, essere maggiormente compatibili con la <a href=\"http:\/\/en.wikipedia.org\/wiki\/Fitts'_law\">Legge di Fitts<\/a> sui device touch, mostrare o nascondere selettivamente gli elementi che potrebbero migliorare la navigazione di una pagina, possiamo persino mettere in atto il <a href=\"https:\/\/alistapart.github.io\/code-samples\/responsive-web-design\/ex\/ex-article.html\">responsive typesetting<\/a> per alterare gradualmente la dimensione e l&#8217;interlinea addizionale del nostro testo, ottimizzando l&#8217;esperienza di lettura a seconda del display su cui viene visualizzato.<\/p>\n<h3>Alcune note tecniche<\/h3>\n<p>Si noti che le media queries godono di un supporto incredibilmente robusto tra i browser moderni. I browser desktop come Safari 3+, Chrome, Firefox 3.5+ e Opera 7+ offrono supporto nativo per il parsing delle media queries, cos\u00ec come succede nei pi\u00f9 recenti browser per dispositivi mobili come Opera Mobile e mobile WebKit. Ovviamente, le versioni pi\u00f9 vecchie di questi browser desktop non supportanto le media queries, e, mentre Microsoft si \u00e8 impegnata a <a href=\"http:\/\/ie.microsoft.com\/testdrive\/HTML5\/85CSS3_MediaQueries\/Default.html\" title=\"Internet Explorer version 9\">supportare le media queries in <abbr title=\"Internet Explorer version 9\">IE9<\/abbr><\/a>, Internet Explorer al momento non ne offre un&#8217;implementazione nativa.<\/p>\n<p>Tuttavia, se siete interessati ad implementare il supporto per le media query nei legacy browser, c&#8217;\u00e8 una strada rivestita d&#8217;argento tinta di Javascript:<\/p>\n<ul>\n<li><a href=\"http:\/\/plugins.jquery.com\/project\/MediaQueries\">Un plugin jQuery<\/a> del 2007 offre un supporto per le media query piuttosto limitato, implementando solo le propriet\u00e0 dei media <code>min-width<\/code> e <code>max-width<\/code> quando sono attaccate ad elementi <code>link<\/code> separati<\/li>\n<li>Pi\u00f9 recentemente \u00e8 stata realizzata <a href=\"http:\/\/code.google.com\/p\/css3-mediaqueries-js\/\">css3-mediaqueries.js<\/a>, una libreria che promette di far fare il parsing, testare ed applicare in maniera trasparente le Media Queries di <abbr title=\"Cascading Style Sheets level 3\">CSS3<\/abbr> a <abbr title=\"Internet Explorer version 5\">IE 5<\/abbr>+, Firefox 1+ and Safari 2 quando sono incluse mediante i blocchi <code>@media<\/code>. Nonostante sia parecchio in release 1.0, l&#8217;ho personalmente trovata piuttosto robusta e mi sono riproposto di seguirne lo sviluppo.<\/li>\n<\/ul>\n<p>Ma se usare JavaScript non vi affascina, \u00e8 perfettamente comprensibile. Tuttavia, questo rinforza l&#8217;opzione di costruire il proprio layout basandosi su una <a href=\"http:\/\/www.alistapart.com\/articles\/fluidgrids\/\">griglia flessibile<\/a>, assicurandovi che il design goda di un po&#8217; di flessibilit\u00e0 nei browser e nei devices che non utilizzano le media queries.<\/p>\n<\/div>\n<div class=\"paragrafo\">\n<h2>Come andare avanti<\/h2>\n<p>Griglie fluide, immagini flessibili e media queries sono i tre ingredienti tecnici per il responsive web design, che per\u00f2 richiede anche un modo diverso di pensare. Piuttosto che mettere in quarantena il nostro contenuto in esperienze disparate e per specifici device, possiamo usare le media query per mettere in atto il progressive enhancement sul nostro lavoro all&#8217;interno di diversi contesti di visualizzazione. Ci\u00f2 non vuol dire che non vi sia un business case per siti separati che si indirizzano a specifici device: ad esempio, se gli scopi dell&#8217;utente per il vostro sito mobile sono molto pi\u00f9 limitati come sfera d&#8217;azione rispetto al suo equivalente desktop, allora dare un contenuto diverso a ciascuna versione pu\u00f2 essere l&#8217;approccio migliore.<\/p>\n<p>Ma questo modo di pensare al design non deve per forza essere il nostro default. Ora pi\u00f9 che mai, ci troviamo a progettare dei lavori che verranno visti attraverso una quantit\u00e0 di diverse esperienze. Il responsive web design ci offre un modo per andare avanti, finalmente permettendoci di \u201cprogettare per il flusso ed il riflusso delle cose\u201d.<\/p>\n<p>Illustrazioni {carlok}<\/p>\n<ul>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>I designers hanno bramato la stampa per via dei suoi layout precisi, lamentandosi dei vari contesti d&#8217;uso dei propri utenti sul web che compromettono i loro design. Ethan Marcotte sostiene che si debba cambiare il modo in cui pensiamo i nostri design per superare questi limiti: usando le griglie fluide, le immagini flessibili e le media queries, ci mostra come adottare il flusso ed il riflusso delle cose con il web design reattivo.<\/p>\n","protected":false},"author":818,"featured_media":7000579,"comment_status":"open","ping_status":"open","template":"","categories":[244,279,272,273,18,274],"tags":[],"coauthors":[299],"class_list":["post-71","article","type-article","status-publish","has-post-thumbnail","hentry","category-css","category-interaction-design","category-layout-and-grids","category-mobile-multidevice","category-numero-7-8-giugno-2010","category-responsive-design"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/article\/71","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=71"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/media\/7000579"}],"wp:attachment":[{"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/media?parent=71"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/categories?post=71"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/tags?post=71"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/alistapart.com\/it\/wp-json\/wp\/v2\/coauthors?post=71"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}