Ce face columns (layout pe mai multe coloane)
Layout-ul pe mai multe coloane (multi-column) curge conținutul de sus în jos în prima coloană, apoi continuă în a doua, și tot așa. Este potrivit pentru text lung, liste de linkuri sau glosare, nu pentru structura paginii.
column-width dă o lățime minimă dorită: browserul pune câte coloane încap, deci layout-ul devine responsiv fără media queries. column-count fixează numărul de coloane. Shorthand-ul columns le acceptă pe amândouă.
column-rule desenează o linie între coloane (sintaxă ca la border), column-span: all face un titlu să treacă peste toate coloanele, iar break-inside: avoid împiedică ruperea unui bloc (card, figură) între două coloane.
Valori uzuale
| Valoare | Descriere |
|---|---|
column-count |
Numărul de coloane (ex. 3). |
column-width |
Lățimea minimă dorită a unei coloane (ex. 16rem). |
column-gap |
Spațiul dintre coloane (implicit 1em). |
column-rule |
Linia dintre coloane: grosime, stil, culoare. |
column-span: all |
Elementul (de obicei un titlu) se întinde peste toate coloanele. |
break-inside: avoid |
Nu rupe elementul între două coloane. |
Exemple
Exemplul 1: Listă lungă de orașe, în coloane responsive
Pe ecran lat apar 4 coloane, pe telefon una singură, fără nicio media query.
.lista-orase {
columns: 12rem;
column-gap: 2rem;
column-rule: 1px solid #e2e8f0;
}
Efect vizual în browser
Lista (Alba Iulia, Arad, Bacău, …, Iași, …, Zalău) curge pe 4 coloane pe un monitor de 1200px, pe 2 coloane pe tabletă și pe o singură coloană pe telefon, cu o linie gri fină între coloane.
Exemplul 2: Carduri de rețete care nu se rup între coloane
Fiecare rețetă rămâne întreagă într-o singură coloană, iar titlul secțiunii stă deasupra tuturor.
.retete {
column-count: 3;
column-gap: 24px;
}
.retete h2 {
column-span: all;
}
.reteta {
break-inside: avoid;
margin-bottom: 24px;
}
Efect vizual în browser
Titlul „Rețete de toamnă” ocupă toată lățimea. Sub el, rețetele (sarmale, zacuscă, plăcintă cu dovleac) sunt așezate pe 3 coloane, fiecare card întreg.
Greșeli frecvente
- Folosirea coloanelor CSS pentru o grilă de produse care trebuie citită pe rânduri; ordinea este pe verticală (coloana 1 de sus în jos, apoi coloana 2). Pentru rânduri folosește Grid.
- Text lung pe coloane într-un container mai înalt decât ecranul; cititorul trebuie să deruleze în jos și apoi înapoi sus pentru coloana următoare.
Comenzi înrudite
display: grid: Transformă elementul într-un container grilă bidimensional, capabil să controleze simultan atât rândurile, cât și coloanele.gap (row-gap, column-gap): Setează distanța dintre elementele copil dintr-un container Flexbox sau Grid, fără a adăuga spațiu la margini.float și clear: Mută un element la stânga sau la dreapta containerului și lasă textul să curgă în jurul lui, ca într-o revistă.