Columns

GCGiuseppe Crescitelli

Introduzione

Tailwind CSS fornisce una utility chiamata columns che permette di creare layout a più colonne facilmente. A differenza delle griglie, che dividono il contenuto in celle precise, la proprietà columns crea un numero variabile di colonne per il contenuto in modo fluido. È utile per elementi come articoli di testo o contenuti che devono adattarsi automaticamente alla larghezza disponibile.

Creazione di Colonne

La sintassi di base per utilizzare le colonne in Tailwind è la classe columns-{n}, dove {n} rappresenta il numero di colonne che vuoi creare. Ad esempio, per creare un layout con due colonne:

<div class="columns-2">
  <p>Contenuto della prima colonna.</p>
  <p>Contenuto della seconda colonna.</p>
</div>

In questo esempio, il contenuto sarà suddiviso in due colonne, che si adatteranno alla larghezza disponibile.

Impostare il Numero di Colonne

Puoi anche specificare un numero maggiore di colonne utilizzando columns-{n}, dove n è il numero di colonne desiderato. Tailwind offre classi per creare da 1 a 12 colonne, ma puoi anche usare valori personalizzati se necessario.

<div class="columns-3">
  <p>Contenuto della prima colonna.</p>
  <p>Contenuto della seconda colonna.</p>
  <p>Contenuto della terza colonna.</p>
</div>

In questo caso, il contenuto verrà diviso in tre colonne.

Colonne con Spaziatura

Per aggiungere spazio tra le colonne, Tailwind offre la classe gap-{size}. Questa proprietà definisce lo spazio tra le colonne, che può essere regolato con valori come gap-2, gap-4, gap-8, ecc.

<div class="columns-3 gap-4">
  <p>Contenuto della prima colonna.</p>
  <p>Contenuto della seconda colonna.</p>
  <p>Contenuto della terza colonna.</p>
</div>

Questo esempio crea tre colonne con uno spazio di 1rem (se gap-4 è definito).

Colonne con Larghezza Personalizzata

Se vuoi che le colonne abbiano larghezze differenti, Tailwind permette di controllare la larghezza della colonna tramite classi come columns-auto, columns-[size] o utilizzando frazioni.

<div class="columns-[200px]">
  <p>Contenuto della prima colonna.</p>
  <p>Contenuto della seconda colonna.</p>
  <p>Contenuto della terza colonna.</p>
</div>

In questo caso, ogni colonna avrà una larghezza di 200px.

Colonne Responsivi

Tailwind CSS consente di creare layout a colonne che si adattano in modo responsivo agli schermi di diverse dimensioni. Usando i breakpoint come sm:, md:, lg:, xl:, puoi modificare il numero di colonne in base alla larghezza dello schermo.

<div class="columns-1 sm:columns-2 lg:columns-3">
  <p>Contenuto della colonna.</p>
  <p>Contenuto della colonna.</p>
  <p>Contenuto della colonna.</p>
</div>

In questo esempio, il layout avrà una sola colonna su dispositivi piccoli, due colonne su dispositivi medi e tre colonne su dispositivi più grandi.

Colonne con Breaks Personalizzati

La classe break-inside permette di controllare come il contenuto si comporta quando viene diviso in più colonne. La classe break-inside-auto è l'impostazione predefinita, ma puoi anche utilizzare break-inside-avoid per evitare che gli elementi vengano suddivisi tra due colonne.

<div class="columns-2">
  <p class="break-inside-avoid">Questo testo non sarà diviso tra due colonne.</p>
  <p>Altri contenuti nelle colonne.</p>
</div>

In questo esempio, il primo paragrafo non verrà spezzato tra le due colonne.

Colonne con Altezza

Per creare colonne con un’altezza uniforme o per gestire il comportamento del contenuto dentro le colonne, puoi usare le classi h-{size} o min-h-{size}. Queste ti permettono di impostare un'altezza fissa o minima per il contenuto delle colonne.

<div class="columns-2 h-32">
  <p>Contenuto nella colonna con altezza fissa.</p>
  <p>Contenuto nella seconda colonna.</p>
</div>

Colonne in Combina con Altri Layout

Puoi anche combinare l'utility columns con altre utility di layout come flex o grid. Questo ti permette di creare layout complessi che utilizzano diverse tecniche di layout in un'unica struttura.

<div class="flex">
  <div class="columns-2 w-1/2">
    <p>Contenuto nella colonna 1.</p>
    <p>Contenuto nella colonna 2.</p>
  </div>
  <div class="w-1/2">
    <p>Contenuto in un'altra sezione accanto alle colonne.</p>
  </div>
</div>

In questo esempio, le colonne si trovano nella metà sinistra della sezione, mentre il contenuto normale è sulla destra.

Colonne con Testo Scorrevole

Per gestire il contenuto che potrebbe non entrare nel layout delle colonne, puoi abilitare lo scorrimento utilizzando la classe overflow-auto. Questo è utile quando il testo o le immagini non si adattano bene a causa di contenuti dinamici.

<div class="columns-3 overflow-auto">
  <p>Testo che scorre tra le colonne.</p>
  <p>Testo che scorre tra le colonne.</p>
  <p>Testo che scorre tra le colonne.</p>
</div>

Conclusioni

La proprietà columns in Tailwind CSS è uno strumento potente per creare layout a più colonne in modo semplice e veloce. Grazie alla sua capacità di gestire colonne fluide, larghezze personalizzabili, e opzioni di spaziatura, è un'ottima scelta per costruire layout di contenuti, come articoli, listati o descrizioni. Inoltre, la sua compatibilità con le classi responsivi consente di realizzare design adattabili a tutte le dimensioni di schermo.

Coding Labs