Con l'aumento della diversità nelle dimensioni dei monitor, non è pratico progettare singoli blocchi di testo che occupino l'intera larghezza dello schermo. La soluzione tradizionale è quella di dividere manualmente il testo in colonne, che richiede molto tempo; o per dividere il testo in modo dinamico con JavaScript, che non funziona universalmente. Inoltre, questo è un problema di presentazione, dovremmo essere in grado di modellarlo con i CSS senza l'uso di sistemi di rete o float, non dovremmo?
CSS3 in realtà fornisce un modo per modellare il tuo testo in varie colonne, ti dà anche la possibilità di impostare una grondaia - lo spazio tra quelle colonne - in questo modo hai il pieno controllo invece del sistema di strutture o della griglia che stabilisce quelle lacune per te .
Meglio di tutto, CSS3 degrada dolcemente, quindi se qualcuno sta navigando su Netscape Navigator, il tuo sito non si romperà.
È importante notare che mentre tutti i browser correnti supportano più colonne in CSS3 - sì, anche IE10 - molte versioni recenti - ad esempio IE9 - no. Anche se il supporto è buono, ti consigliamo di includere i prefissi del browser per webkit (-webkit-) e mozilla (-moz-). Non è necessario includere -ms- o -o- per IE e Opera, in quanto entrambi supportano la funzionalità per intero o non lo fanno affatto.
Questa funzionalità CSS offre in effetti una manciata di proprietà per darti il pieno controllo su come i tuoi contenuti vengono stampati nel browser e tali proprietà sono:
Con tutte queste proprietà non penso che in realtà abbiamo bisogno di qualcos'altro per avere il pieno controllo sulle nostre colonne. Ovviamente non tutte queste proprietà sono necessarie per il funzionamento del layout multi-colonna, in realtà è necessario solo il conteggio delle colonne ma è sempre consigliabile utilizzare anche il column-gap per dare al testo un po 'di spazio e non avere tutte le colonne su uno sopra l'altro.
Per metterlo in pratica bastano due righe di codice:
/* This will produce a 3 column layout with a gap of 20px between each column */.cols3 {column-count: 3;column-gap: 20px;}
Se desideri anche applicare una regola alle colonne, devi solo aggiungere le proprietà aggiuntive:
/* This will produce a 3 column layout and a gap of 20px between each column and a rule of 1px solid black */.cols3 {column-count: 3;column-gap: 20px;column-rule-width: 1px;column-rule-style: solid;column-rule-color: #000;}
Come la proprietà del bordo più comune puoi anche impilare il colore, lo stile e la larghezza nella stessa linea, in questo modo:
.cols3 {column-count: 3;column-gap: 20px;column-rule: 1px solid #000;}
Se hai un'intestazione e vuoi che quell'intestazione occupi tutte le colonne devi solo aggiungere una riga:
/*This h1 will take up the space of the 3 columns*/.cols3 h1{column-span: all;}
Puoi applicarlo praticamente a qualsiasi HTML, da un singolo paragrafo a più
Saltare alle colonne CSS ha molti vantaggi a mio avviso, non è necessario utilizzare un sacco di matematica, float o interruzione dei contenuti quando il browser viene ridimensionato dall'utente. Puoi anche scrivere il tuo codice in un modo molto più semantico e dato che sono supportati da tutti i principali browser, dovresti considerare di usare le colonne da ora in poi.
Disegnate colonne con CSS3 o attenetevi ai float e al posizionamento? Quali suggerimenti hai per gestire i browser più vecchi? Fateci sapere nei commenti.
Immagine in primo piano / miniatura, immagine di colonne via Shutterstock.