Ce face align-content
align-content distribuie spațiul liber pe axa transversală între rânduri, nu între elementele unui rând (asta face align-items). Într-un container flex are efect doar dacă există mai multe rânduri, adică doar cu flex-wrap: wrap.
În CSS Grid, mută întreaga grilă în container atunci când rândurile ocupă mai puțin decât înălțimea lui (de exemplu align-content: center pune grila la mijloc pe verticală).
Noutate utilă: în browserele actuale (Chrome 123, Firefox 125, Safari 17.4 și mai noi), align-content funcționează și pe un bloc obișnuit (display: block) cu înălțime dată. Așa poți centra vertical conținutul unei cutii fără Flexbox.
Valori uzuale
| Valoare | Descriere |
|---|---|
normal |
Implicit; în flex se comportă ca stretch. |
flex-start / start |
Rândurile se adună la începutul axei (sus). |
center |
Rândurile se adună la mijloc. |
flex-end / end |
Rândurile se adună la final (jos). |
space-between |
Primul rând sus, ultimul jos, spațiu egal între ele. |
space-around / space-evenly |
Spațiu distribuit în jurul / egal între toate rândurile. |
Exemple
Exemplul 1: Etichete pe mai multe rânduri, adunate sus
Într-un panou înalt cu etichete, implicit rândurile s-ar întinde pe toată înălțimea; flex-start le ține grupate sus.
.etichete {
display: flex;
flex-wrap: wrap;
gap: 8px;
height: 240px;
align-content: flex-start;
}
Efect vizual în browser
Etichetele (Iași, Cluj, Timișoara, Brașov, Constanța, …) ocupă două rânduri strânse în partea de sus a panoului; restul înălțimii rămâne gol, jos.
Exemplul 2: Centrare verticală într-un bloc simplu, fără flex
Merge în browserele din 2024 încoace; în cele vechi textul rămâne sus, deci degradarea este acceptabilă.
.banner {
height: 180px;
align-content: center;
text-align: center;
background: #1e293b;
color: #ffffff;
}
Efect vizual în browser
Textul „Reduceri de până la 30% în weekend” apare centrat atât orizontal, cât și vertical în bannerul închis la culoare de 180px.
Greșeli frecvente
- Folosirea lui
align-contentpe un container flex cu un singur rând (flex-wrap: nowrap); nu are efect. Pentru un singur rând foloseștealign-items. - Confundarea cu
align-items: align-items aliniază elementele în interiorul rândului lor, align-content mută rândurile întregi.
Comenzi înrudite
align-items: Aliniază elementele de-a lungul axei secundare / transversale (vertical când flex-direction este row).flex-wrap: Controlează dacă elementele flex sunt forțate să stea pe o singură linie sau au voie să treacă pe rânduri noi.justify-content: Distribuie elementele și spațiul liber de-a lungul axei principale (orizontal când flex-direction este row).place-items, place-content și place-self: Prescurtări care aliniază pe ambele axe deodată: place-items pentru elemente, place-content pentru grilă, place-self pentru unul singur.