Ce face place-items, place-content și place-self
În CSS Grid alinierea are două axe: bloc (verticală, proprietățile align-*) și inline (orizontală, proprietățile justify-*). Proprietățile place-* le setează pe amândouă dintr-o singură linie: prima valoare pentru align, a doua pentru justify. Dacă dai o singură valoare, se aplică pe ambele axe.
• place-items aliniază fiecare element în celula lui (align-items + justify-items).
• place-content mută întreaga grilă în container când rămâne spațiu liber (align-content + justify-content).
• place-self se pune pe un singur copil și suprascrie alinierea lui (align-self + justify-self).
Cea mai cunoscută utilizare: display: grid; place-items: center; centrează perfect un element pe ambele axe.
Valori uzuale
| Valoare | Descriere |
|---|---|
place-items |
align-items și justify-items: poziția elementelor în celulele lor. |
place-content |
align-content și justify-content: poziția grilei în container. |
place-self |
align-self și justify-self pentru un singur element. |
justify-items |
Alinierea orizontală a tuturor elementelor în celule (start, center, end, stretch). |
justify-self |
Alinierea orizontală a unui singur element în celula lui. |
Exemple
Exemplul 1: Centrare perfectă cu două linii
Ecranul de încărcare are mesajul exact în mijloc, pe orizontală și pe verticală.
.ecran-incarcare {
display: grid;
place-items: center;
min-height: 100dvh;
}
Efect vizual în browser
Mesajul „Se încarcă comanda ta…” stă în centrul exact al ecranului, oricât de mare ar fi fereastra.
Exemplul 2: Un singur element aliniat diferit în celula lui
Toate cardurile se întind pe toată celula, dar insigna „Nou” stă în colțul din dreapta jos al celulei ei.
.grila {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-rows: 120px;
}
.grila .insigna-nou {
place-self: end;
}
Efect vizual în browser
Celelalte elemente umplu celulele de 120px înălțime; insigna verde „Nou” are doar mărimea textului ei și stă lipită de colțul din dreapta jos al celulei.
Greșeli frecvente
- Folosirea lui
justify-itemssaujustify-selfîn Flexbox; acolo sunt ignorate. Pe axa principală a unui container flex foloseștijustify-contentsaumargin-left: auto. - Inversarea ordinii valorilor: în
place-items: start end, prima valoare (start) este pentru axa verticală, a doua (end) pentru cea orizontală.
Comenzi înrudite
align-items: Aliniază elementele de-a lungul axei secundare / transversale (vertical când flex-direction este row).justify-content: Distribuie elementele și spațiul liber de-a lungul axei principale (orizontal când flex-direction este row).align-content: Aliniază pe verticală rândurile unui container flex cu wrap sau ale unei grile, ori tot conținutul unui bloc.display: grid: Transformă elementul într-un container grilă bidimensional, capabil să controleze simultan atât rândurile, cât și coloanele.