Ottimizzazione dei siti per smartphone e tablet tramite CSS3
Lo sviluppo di siti web è cambiato radicalmente con la forte diffusione di tablet e smartphone. Ecco alcune problematiche osservate dal punto di vista degli sviluppatori
di Antonio Barba pubblicato il 29 Aprile 2013 nel canale ProgrammiOttimizzazione dei siti per smartphone e tablet tramite CSS3
Chi sviluppa frontend per siti Web, da qualche anno a questa parte, ha avuto non pochi grattacapi per supportare correttamente i browser per smartphone e tablet. Sono state escogitate diverse soluzioni per offrire una buona esperienza di navigazione, tra cui la più diffusa è tutt’ora quella di separare il frontend di un sito in due rami distaccati: standard e mobile. Tipicamente, infatti, molti designers hanno sviluppato due versioni separate del frontend, con URL differenti se non addirittura il domain name. Un esempio classico sono i siti con URL “www.example.com/m/contenuto”, oppure “m.example.com/contenuto”, oppure ancora “www.example.com/contenuto?mobile=1”.
Il meccanismo prevede che l’utente, raggiungendo il sito principale, venga redirezionato sul sito mobile se si verificano certe condizioni (User Agent / Risoluzione schermo), e il meccanismo può essere implementato lato server, tramite JavaScript, oppure con una combinazione dei due. Di solito viene piazzato anche un link “Passa alla versione classica del sito”, nel footer di ogni pagina, per lasciare all’utente la possibilità di scegliere il sito principale.
Questo metodo funziona, anche con device datati (senza supporto CSS3), ma ha alcune controindicazioni:
- Si verifica una duplicazione di contenuti che può penalizzare sui motori di ricerca (anche se questo fatto viene mitigato con opportuni accorgimenti che gli esperti di SEO ormai hanno adottato)- Si crea un doppio branch nel frontend che potrebbe complicare notevolmente l’iter di sviluppo e manutenzione del sito
- Si creano problemi nel momento in cui gli utenti pubblicano link tramite social network da dispositivi mobili (il link sarà quello alla versione mobile, e chi visita i link da PC si ritrova con un frontend totalmente inadatto al tipo di dispositivo usato)
Una nuova tecnica, si sta diffondendo in questi ultimi tempi e che, almeno sulla carta, punta a risolvere tutti questi problemi: il Responsive Design. Sul Responsive Design si potrebbero scrivere interi libri, per cui non andremo a spulciare ogni possibile implicazione, ma daremo soltanto alcuni spunti iniziali da cui poter proseguire con eventuali approfondimenti. Il principio di base nel RD consiste nel fornire un frontend unico, e quindi un unica URL, per tutti i dispositivi, e lasciare che il client, in base a certe condizioni, selezioni automaticamente lo stile adatto per il tipo di display e di controlli.
Un approccio naif al problema potrebbe essere quello di usare una serie di script in JS che, rilevando la risoluzione della finestra e altri parametri utili (orientamento, versione del browser, ecc…),vadano a modificare dinamicamente il DOM, adattando posizione e stili dei vari elementi per la dimensione corrente della finestra / schermo. Questo metodo ha il vantaggio di girare anche su browser abbastanza datati, purchè siano in grado di processare una certa quantità di script in JS. A questo proposito va ricordato come il JS sia abbastanza oneroso da processare, specie su device mobili di una certa data privi di browser aggiornati. Ciò implica che un frontend sviluppato in questo modo sia abbastanza pesante da processare.
Un’altra via è quella di sfruttare alcune delle nuove caratteristiche di CSS3, supportate dai moderni browser come IE9 e IE10 (comprese le versioni per Windows Phone 7.5 e Windows Phone 8), le ultime versioni di Firefox e Opera, e tutti quelli basati su Webkit, come Safari, Chrome e Android Browser: le Media Queries.
Probabilmente conoscete, e magari avete già usato estensivamente, gli stylesheet alternativi in una pagina HTML. Per chi non ne fosse al corrente, ogni pagina HTML può avere associati diversi fogli di stile CSS, in questo modo:
<link rel="stylesheet" type="text/css" href="default.css" |
In questo esempio, abbiamo lo stile “default.css” che viene applicato alla pagina quando viene visualizzata a schermo, mentre lo stile “print.css” viene usato per la stampa. Solitamente in stampa vengono eliminati i colori di background, le sidebar, e altri elementi non indispensabili per la fruizione del contenuto principale, per cui alcune regole CSS avranno delle differenze grafiche, e interi “div” potrebbero venire nascosti.







50 anni e non sentirli, SAS innova su IA, digital twin e quantum computing
Tesla Model 3 dopo 5 anni di utilizzo e 158.000km
DJI Mic Mini 2: audio 48 kHz / 24-bit e protocollo OsmoAudio sotto i 100 Euro
Stop improvviso ai datacenter: cosa sta succedendo davvero nel Nord Europa
Tesla ora vende una Model 3 dal folle prezzo di 25.000 euro
GameStop vuole comprare eBay per 55,5 miliardi: il negozio di videogiochi che vuole diventare Amazon
TIM, nuovi rincari da giugno: come evitare l'aumento di 2,99 euro
Scope elettriche Dreame, Tineco ed economiche: tutte in offerta su Amazon, ecco quale scegliere in base alle proprie esigenze
Addio Ask.com: il motore di ricerca che aveva 'previsto' ChatGPT chiude per sempre
La mossa a sorpresa: BYD pronta a entrare in casa Volkswagen
Finalmente! AMD sblocca l'HDMI 2.1 su Linux dopo anni di battaglie: ecco cosa cambia per i gamer
Un po' MacBook Pro, ma con la RTX 5070 e Intel Core Ultra 9 275HX: Alienware a 1.899€ è un mostro per tutto
Prezzi in salita e scorte finite: cosa sta succedendo davvero al Mac Mini di Apple
Oral-B iO in offerta su Amazon: tutti i modelli scontati e come scegliere quello più adatto alle proprie esigenze
Hai davvero finito Crimson Desert? La nuova patch ti costringe a ricominciare
TCL regala il tablet NXTPAPER a chi compra uno dei suoi nuovi TV SQD-Mini LED
Gamma Silence: primo contatto e test ride del nuovo scooter S02 e della nanocar S04








