Imparate le regole di base, scrivere un foglio di stile CSS risulta essere un’operazione piuttosto semplice: diamo il nome a un elemento all’interno del DOM e richiamiamolo all’interno del CSS con gli stili che desideriamo applicargli. Voilà!
Nell’articolo di questa settimana, vorrei invece portarvi a scavare più a fondo nel mondo dei CSS per capire quali sono le buone norme da adottare che vi permetteranno di strutturare i vostri fogli di stile in modo pulito, comprensibile e mantenibile.
Premessa: non utilizzare stili inline! Potrebbe sembrare comodo in alcuni contesti, ma la mancata separazione tra contenuto e design rende il nostro sito molto più difficile da mantenere (oltre a non essere pulito). Se consideriamo, ad esempio, che a un certo punto potremmo volerne cambiare la grafica, si spenderà molto tempo a cercare e modificare gli stili dichiarati all’interno delle pagine rispetto ad averli in un foglio CSS. Oltretutto, la nostra pagina web diventerà più pesante e meno accessibile ai motori di ricerca, talvolta anche agli screen readers utilizzati da persone affette da disabilità.
Vediamo ora quali sono le best practices per realizzare fogli di stile CSS:
Unificazione delle regole di base dei CSS per tutti i Browser
Ciascun browser assegna delle regole di stile diverse agli elementi del markup HTML. Per avere una base uniforme da cui partire, i metodi più comuni sono di utilizzare un reset per azzerare tutti i parametri (come il reset di Eric Meyer) oppure di normalizzare le caratteristiche dei tag HTML utilizzando normalize.css. Il secondo metodo può essere preferibile rispetto al primo poichè agisce solo sulle differenze tra vari browser, mantenendo così gli stili di default utili senza doverli riscrivere. Per un approfondimento su normalize, consultate questo link.
Separazione in fogli di stile diversi
Quando il nostro foglio di stile comincia a comporsi di qualche migliaia di righe diventerà un po’ più difficile da mantenere e separarlo in fogli di stile differenti potrebbe migliorare il flusso di lavoro nonchè darà maggior consistenza al nostro progetto.
La separazione dei fogli di stile potrebbe essere pensata in modi differenti a seconda di come è strutturato il sito, ma di base potremmo avere:
- layout.css: regole inerenti al layout (ad esempio: header, content, footer..)
- grids.css: regole inerenti alle griglie del sito (ad esempio: blocks, columns..)
- fonts.css: regole di eventuali font-face inclusi
- tools.css: regole di eventuali strumenti utilizzati (ad esempio tabs, accordions..)
- forms.css regole inerenti alle form del sito
Tienilo semplice e pulito
Cerchiamo di evitare concatenazioni molto lunghe di selettori, rischiando di essere troppo specifici inutilmente.
Se ad esempio abbiamo una struttura di questo tipo:
[code type=”markup”]