L'origine di "mobile first"
L'idea di "mobile first" per quanto riguarda Responsive Design nasce da un momento in cui i browser per dispositivi mobili erano molto meno capaci di quello che si potrebbe trovare su un dispositivo desktop. Molti di loro non supportavano affatto le media query, quindi l'idea di creare un design desktop stravagante e poi attenersi agli stili utilizzando le query multimediali per una finestra stretta si mostra piatta.
L'assenza di supporto per le media query è in effetti la prima media query.
- Bryan Rieger
Il primo dispositivo mobile è ancora rilevante?
Nonostante il fatto che i browser per dispositivi mobili abbiano raggiunto le loro controparti desktop, "mobile first" è ancora il modo più logico di scrivere i tuoi stili.
Preferisco pensare in termini di "evitare di annullare dichiarazioni di stile precedenti". Un approccio additivo, piuttosto che scrivere stili e poi sostituirli in un secondo momento, porterà quasi sempre a un foglio di stile più compatto. Gli stili appropriati per la maggior parte / tutti i dispositivi devono essere trovati al di fuori delle query multimediali, mentre gli stili che sono rilevanti solo per una finestra specifica devono essere dietro una query multimediale.
Confronta un approccio "desktop first":
.column {
float: left;
width: 50%;
}
@media all and (max-width: 50em) {
.column {
float: none;
width: auto;
}
}
Ad un approccio "mobile first":
@media all and (min-width: 50em) {
.column {
float: left;
width: 50%;
}
}
I risultati sono gli stessi, ma il secondo è più compatto. Esempi di stili copiati senza vergogna dalle 7 abitudini di media estremamente efficaci di Brad Frost .
Ci sono alcune rare eccezioni in cui "desktop first" è più appropriato del contrario. Il più notevole di questi è quando stai facendo cose come le tabelle reattive. Le finestre più ampie vorranno gli stili predefiniti per le tabelle, ma una finestra stretta vorrà sovrascrivere tutto ciò in modo che i contenuti possano essere impilati verticalmente.
Non rompere i tuoi fogli di stile
Una cosa che non dovresti assolutamente fare è suddividere i tuoi stili di risposta in singoli file CSS e utilizzare l'attributo media sull'elemento link. Ciò ha la conseguenza indesiderabile di far scaricare UA da tutti i fogli di stile collegati (cioè non c'è alcun miglioramento della velocità per farlo).
<!-- this is bad, don't do this -->
<link rel="stylesheet" media="(max-width: 800px)" href="example.css" />
Quindi il codice dovrebbe essere prima mobile, ma per quanto riguarda l'approccio al design?
Sono dell'opinione che non abbia importanza. I layout per tutti i viewport rilevanti per il design devono essere eseguiti (questo potrebbe comportare un minimo di 2 o un massimo di 5 una volta che si tiene conto di eventuali punti di interruzione minori che potrebbero essere necessari!), L'ordine non importa alla fine. Molti designer non hanno la disciplina di iniziare con un layout desktop e scoprono che partire da un layout mobile è più semplice.
Se desideri iniziare da un layout desktop, devi evitare la tentazione di riempire tutto quel glorioso spazio bianco con disordine che non migliora il contenuto di quella pagina. Hai davvero bisogno di quella foto 800x600 di una donna sorridente che tiene un telefono? È solo un costo per l'utente mobile in più denaro per scaricare lanugine inutili ed è solo una distrazione visiva per un utente desktop da saltare.