La media
funzione di query CSS3 ha portato a molte interessanti possibilità in termini di sviluppo di siti Web che si adattano a dimensioni e dispositivi di schermi diversi.
Tuttavia, in pratica, sto iniziando a capire che la media
funzionalità di query CSS3 e l'intero movimento "Responsive Web Design" potrebbero non essere all'altezza delle sue promesse.
Il problema che vedo è che, alla fine della giornata, gli sviluppatori web si preoccupano soprattutto se i loro utenti stanno visualizzando i contenuti tramite un dispositivo desktop, tablet o mobile. Ma CSS3 fornisce solo un mezzo per rilevare la risoluzione dello schermo . In teoria, rilevare la risoluzione dello schermo sembra un ottimo modo per adattarsi a vari dispositivi diversi. Ma in pratica ...
Supponiamo di avere una semplice funzione Javascript che produce solo la larghezza dello schermo:
function foo()
{
alert(screen.width);
}
Sul mio Blackberry Touch, questo produce:
768
Sul mio Samsung Galaxy, questo produce:
800
Quindi ... a questo punto, la risoluzione degli smartphone tradizionali si sta avvicinando abbastanza alle risoluzioni a livello di desktop. La capacità di rilevare se un utente sta visualizzando il tuo sito Web tramite uno smartphone, un tablet o un desktop, sembra essere sempre più difficile se tutto ciò che stai passando è la risoluzione dello schermo.
Questo mi fa mettere in discussione l'intera saggezza che sta dietro l'intero movimento CSS3 "Responsive Web Design" basato su query dei media. Sembra quasi che la media
funzione di query sia più adatta ad adattarsi a una finestra del browser di ridimensionamento su uno schermo del desktop, piuttosto che a vari dispositivi mobili.
Un'altra possibile tecnica per rilevare dispositivi mobili o tablet consiste nell'utilizzare il rilevamento delle funzionalità, verificando se l' ontouchstart
evento è supportato. Ma anche questo sta diventando inaffidabile poiché molti schermi desktop iniziano a supportare il tocco.
Domanda: Quindi ... come sviluppatore web, se non posso fare affidamento su RWD o sul rilevamento delle funzionalità, lo sniffing user-agent (notoriamente inaffidabile come sempre) è davvero l'opzione migliore per rilevare i dispositivi mobili?
device-width
abbastanza male?