Advertisement
  1. Web Design
  2. UX/UI
  3. Responsive Design

Rapido consiglio: non scordate il meta tag viewport

Scroll to top
Read Time: 7 min
This post is part of a series called Strange and Unusual HTML.
Explaining the “Details” and “Summary” Elements

() translation by (you can also view the original English article)

Ricordo la mia iniziazione al web responsivo; usai una classica griglia, lottai con un layout flessibile e affrontai le media queries per la prima volta. Allargando e restringendo la finestra fui soddisfatto nel vedere la reattività del mio modello a ciò che gli accadeva intorno. Dopodiché lo testai su un cellulare. Non funzionò - ciò che vidi fu una versione deforme del modello per schermi normali. La soluzione, quando si rivelò, fu semplice..

Nota: questo seminario fu pubblicato inizialmente nel febbraio del 2012, ma è stato citato spesso in altre fonti (e nel mentre alcune cose sono cambiate), così mi son sentito in dovere di aggiornarlo.

Opzioni premium

Questo seminario vuole spiegarvi come usare il meta tag viewport per conto vostro, ma nel caso in cui vi serva aiuto per creare un sito web responsivo, c'è una schiera di progettisti disponibili all'Envato Studio. Ecco alcune delle migliori opzioni:

1. Sito web responsivo e sviluppo

Responsive Website Design DevelopmentResponsive Website Design DevelopmentResponsive Website Design Development

Questo fornitore britannico può creare un progetto web personalizzato sul vostro marchio, i colori, le vostre personali necessità e le migliori tecniche di usabilità. Il vostro sito web sarà concepito unicamente per la vostra compagnia e predisposto per la maggiore portabilità.

Avrete:

  • Uno stile d'impatto
  • File PSD totalmente personalizzabili e scalabili 
  • HTML5, CSS3, JavaScript, CMS
  • Modello web responsivo

2. Personalizzazione e modello web responsivo

Custom Responsive Website DesignCustom Responsive Website DesignCustom Responsive Website Design

Se potete occuparvi personalmente dello sviluppo e volete solo il modello, potete scegliere questa opzione, che vi offre un sito web strutturato in maniera professionale. Cosa comprende:

  • Il modello della home page predisposto su una griglia Bootstrap
  • 3 sottopagine (chi siamo, contatti e domande frequenti, o simili)
  • Sottomenu e effetti di hover su collegamenti e bottoni per il vostro sviluppatore
  • Livelli ben strutturati ed organizzati

3. Modello sito web one-page responsivo

Questo fornitore è un lavoratore autonomo, con oltre 12 anni di esperienza professionale nella progettazione di siti web, grafica e progettazione di interfacce UI/UX.

Avrete un sito web one-page elegante progettato con concezione responsiva.

Se nessuna di queste opzioni vi soddisfa, o piuttosto se volete imparare a farlo per conto vostro, continuate con questa lettura.


Il punto cruciale

Se non avete mai letto altro sull'argomento oltre a questa pubblicazione, seguite un consiglio: se siete interessati a progettare modelli flessibili, usate il meta tag viewport nel vostro tag <head>. In parole semplici, per la vostra comodità vi permetterà di adottare un modello multi piattaforma:

1
<meta name="viewport" content="initial-scale=1">

Il problema

Usiamo un modello di esempio che ho composto. Osservate, potrete vedere come esso si comprima e cresca a seconda di come manipoliate la dimensione del browser. C'è anche una media query che ingrandisce il carattere e gli assegna il colore #ff333e sugli schermi più ampi. Affascinante.

Così è come risulta in Chrome su OSX:

viewport-chrome-correctviewport-chrome-correctviewport-chrome-correct

E così è come appare quando la finestra del browser viene ristretta:

viewport-chrome-squishviewport-chrome-squishviewport-chrome-squish

Ora osserviamo il suo aspetto su un cellulare (nel caso specifico Safari su iOS di in un iPhone 4):

viewport-iphone-incorrectviewport-iphone-incorrectviewport-iphone-incorrect

La prima cosa che potrete notare è l'intestazione in rosso: un omaggio inaspettato nel modello ristretto. Stiamo osservando la versione rimpicciolita di quella normale.

iOS Safari presuppone che pa pagina web sia larga 980px, e la rimpicciolisce in modo che calzi nei 320px (risoluzione dell'iPhone 4) disponibili. I contenuti sono meno accessibili, a meno che non si adoperi lo zoom.


Perché?

Come si dice, presupporre è la madre di tutti i... qualcosa ma questo è esattamente il comportamento che i browser dei cellulari devono adottare se non vengono istruiti esplicitamente. Quando visitate un sito web attraverso il browser di un cellulare, esso presuppone che lo stiate facendo attraverso un grande schermo e che perciò vogliate vederlo per intero, non soltanto la porzione in alto a sinistra. Perciò imposterà la larghezza del viewport a 980px (nel solito caso di Safari su iOS), facendo calzare ogni cosa nel suo piccolo schermo.


Il meta tag viewport

Inserite il meta tag viewport, introdotto da Apple e poi adottato e migliorato dai altri. 

In questa maniera:

1
<meta name="viewport" content="">

All'interno di content="" potrete inserire una serie di valori separati da virgola, ma noi ci concentreremo sull'unico fondamentale per ora.

Per esempio, se il vostro progetto per cellulare è espressamente concepito per i 320px, potrete specificare la larghezza del viewport:

1
<meta name="viewport" content="width=320">

Per i modelli flessibili è più pratico assegnare la larghezza del viewport in base a quella del device in questione, così da farli combaciare:

1
<meta name="viewport" content="width=device-width">

Per essere sicuri che il vostro modello venga visualizzato esattamente come lo intendevate, potete anche specificare il livello di zoom. Così, per esempio:

1
<meta name="viewport" content="initial-scale=1">

..sarete certi che all'apertura, il vostro modello verrà propriamente visualizzato in scala 1:1. Non verrà applicato nessun ridimensionamento. Potete anche andare oltre impedendo l'uso dello zoom da parte dell'utente:

1
<meta name="viewport" content="maximum-scale=1">

Nota: Prima di applicare il parametro maximum-scale, valutate se  impedire agli utenti l'utilizzo dello zoom, sia strettamente necessario. Possono leggere ogni cosa nel miglior modo possibile?

L'uso scorretto del meta tag viewport potrebbe far sorgere agli utenti problemi di accesso.


Mettere tutto assieme

Questi valori assieme ci forniscono una buona base su cui sviluppare:

1
<meta name="viewport" content="width=device-width, initial-scale=1">

Osserviamo come rendono il nostro esempio

viewport-iphone-correctviewport-iphone-correctviewport-iphone-correct

Come potete notare, ogni cosa rimane alla dimensione corretta. Il testo si adatta invece di essere rimpicciolito, ed il nostro riferimento visuale (il titolo in rosso) è scomparso.


Ma!?

Tanto di cappello a Jason per avermelo fatto notare nei commenti. Dato che la larghezza del modello è uguale alla larghezza del dispositivo, andrete in contro a dei problemi quando userete il dispositivo in orizzontale. Date uno sguardo a come un iPhone 4 in senso orizzontale gestisce il nostro esempio:

RuinedRuinedRuined
Rovinato.

Il browser si sente in dovere di applicare lo zoom, per adattarlo alla larghezza della pagina.

Per risolvere potremmo, come suggerito da Jason, avvalerci di JavaScript per scegliere condizionalmente quale attributi assegnare al tag meta. ma la soluzione più semplice sembrerebbe quella di ignorare del tutto il valore di width. Usando solamente initial-scale la larghezza viene dedotta. Così è come il nostro nuovo e semplificato esempio appare in orizzontale:

Much betterMuch betterMuch better
Molto meglio.

Il non standard che stavate cercando

Il meta tag viewport fu l'espediente di Apple al problema. Fu rapidamente adottata dalle altre piattaforme, ma non fu mai supportata dal W3C. Microsoft portò alla luce il problema quando decise di indurre IE10 ad ignorare il meta tag viewport in determinate circostanze. Scelsero invece di optare per l'adattamento CSS al dispositivo, che è ciò a cui propende il W3C.

In breve, proprietà simili a quelle del viewport vengono definite tramite il CSS usando la regola @viewport, anziché nell'HTML.

1
@viewport{
2
    zoom: 1.0;
3
    width: device-width;
4
}

Ovvero, nell'ottica del nostro nuovo approccio di non specificare la larghezza del dispositivo, potremmo operare come segue:

1
@viewport{
2
  zoom: 1.0;
3
	width: extend-to-zoom;
4
}

Dal momento che ciò è ancora in via di definizione, IE10 ha bisogno di una versione della proposta con un prefisso, che è qualcosa del genere:

1
@-ms-viewport{
2
    width: extend-to-zoom;
3
    zoom: 1.0;
4
}

È una soluzione più elegante rispetto il tag meta, ma è ancora lontano dall'essere pienamente supportato. Ora inseritelo nel CSS, per esser sicuri che il vostro modello si comporti adeguatamente nello "snap mode" di IE10 e tenete d'occhio i suoi progressi nel futuro. Qui è dove il controllo del viewport è intestato.

Potete approfondire l'argomento nella pubblicazione di Tim Kadlec lo snap mode di IE10 ed il modello responsivo


Conclusioni

La progettazione del web responsivo non è solamente per gente che si diverte a guardare il proprio browser crescere e rimpicciolirsi, riguarda la gestione del maggior numero di dispositivi diversi, schermi e risoluzioni!  Aggiungete il meta tag viewport nel vostro <head>, e la regola @viewport nel vostro CSS quando costruite strutture flessibili e sarete sulla buona strada.


Ulteriori letture

Soluzioni preconfezionate

Inoltre potrete trovare migliaia di temi responsivi e templates di ottima qualitià su ThemeForest ed un'enorme quantità di script, plugin e add-on nella categoria "responsivo" su CodeCanyon.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Web Design tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.