place-items
Proprietatea în CSS este prescurtarea pentru align-items
și justify-items
proprietățile, combinarea lor într - o singură declarație.
O utilizare obișnuită este centrarea orizontală și verticală cu Grid:
.center-inside-of-me ( display: grid; place-items: center; )
Aceste proprietăți s-au folosit cu introducerea aspectelor Flexbox și Grid, dar sunt aplicate și la:
- Cutii la nivel de bloc
- Cutii poziționate absolut
- Poziția statică a cutiilor absolut poziționate
- Celule de masă
Sintaxă
Proprietatea acceptă valori duale, prima pentru align-items
și a doua pentru justify-items
. Ca reîmprospătare, align-items
aliniază conținutul de-a lungul axei verticale (coloană), în timp ce justify-items
se aliniază de-a lungul axei orizontale (rând).
.item ( display: grid; place-items: start center; )
Aceasta este la fel ca și scrierea:
.item ( display: grid; align-items: start; justify-items: center; )
Dacă este furnizată o singură valoare, atunci setează ambele proprietăți. De exemplu, aceasta:
.item ( display: grid; place-items: start; )
... este la fel ca și scrierea asta:
.item ( display: grid; align-items: start; justify-items: start; )
Valori acceptate
Ceea ce face această proprietate interesantă este că se comportă diferit în funcție de contextul în care este utilizată. De exemplu, unele valori se aplică numai Flexbox și nu vor funcționa într-o setare Grid. În plus, unele valori se aplică align-items
proprietății în care altele se aplică justify-items
lateralului.
Mai mult, valorile în sine pot fi considerate că se încadrează într-o serie de tipuri de aliniere: contextuală, distribuție, pozițională (care devine auto-pozițională dacă se aplică direct la un element copil din aspect) și linia de bază.
Rachel Andrew are o foaie de trișare excelentă Box Alignment, care ajută la ilustrarea efectului valorilor.
Valoare | Tip | Descriere |
---|---|---|
auto | Contextual | Valoarea se ajustează în funcție de contextul elementului. Folosește justify-items valoarea elementului părinte al elementului. Dacă nu există părinte sau se aplică unui element care este poziționat cu absolute , atunci valoarea devine normal . |
normal | Contextual | Preia comportamentul implicit al contextului de aspect în care este aplicat. • structuri de nivel bloc: start • Absolute- poziționare: start pentru elementele absolute înlocuite și stretch pentru toate celelalte• dispuneri Tabel: Valoarea este ignorată • dispuneri flexbox: Valoarea este ignorată • dispuneri Grid: stretch , cu excepția cazului în care se utilizează un raport de aspect sau dimensionare intrinsecă în cazul în care se comportă castart |
stretch | Distribuție | Extinde elementul la ambele margini ale containerului pe verticală align-items și pe orizontală pentru justify-items . |
start | Pozițional | Toate elementele sunt aliniate între ele pe marginea de start (stânga) a containerului |
end | Pozițional | Toate elementele sunt aliniate una pe cealaltă pe marginea de capăt (dreapta) a containerului |
center | Pozițional | Articolele sunt aliniate una lângă alta spre centrul containerului |
left | Pozițional | Articolele sunt aliniate una lângă cealaltă spre partea stângă a containerului. În cazul în care proprietatea nu este paralelă cu un standard de sus, dreapta, axa de jos, stânga, apoi se comportă ca end . |
right | Pozițional | Articolele sunt aliniate una lângă cealaltă spre partea dreaptă a containerului. În cazul în care proprietatea nu este paralelă cu un standard de sus, dreapta, axa de jos, stânga, apoi se comportă ca start . |
flex-start | Pozițional | O valoare numai flexbox (care revine la start ) în care articolele sunt ambalate către marginea de pornire a containerului. |
flex-end | Pozițional | O valoare numai flexbox (care revine la end ) în care articolele sunt împachetate către marginea de capăt a containerului. |
self-start | Auto-pozițional | Permite unui articol dintr-un aspect să se alinieze pe marginea containerului pe baza propriei sale părți de pornire. Practic, înlocuiește valoarea setată pentru părinte. |
self-end | Auto-pozițional | Permite unui articol dintr-un aspect să se alinieze pe marginea containerului pe baza propriei laturi finale, în loc să moștenească valoarea pozițională a containerului. Practic, înlocuiește valoarea setată pentru părinte. |
first baseline last baseline | De bază | Aliniază toate elementele dintr-un grup (adică celulele dintr-un rând) prin potrivirea liniilor de bază ale alinierii lor. Implicit first dacă baseline este utilizat singur. |
Suport pentru browser
Această proprietate este inclusă în specificația Modelului de aliniere CSS Box Nivelul 3.
Asistența pentru browser a devenit destul de largă și în mare parte utilizabilă:
- Edge 79+ (tranziție post crom)
- Firefox 45+
- Chrome 59+
- Safari 11+
Referințe
- Modelul de aliniere a casetei CSS Nivelul 3 - Specificația oficială în care
place-items
proprietatea este definită inițial. - Rețeaua dezvoltatorilor Mozilla - Documentația echipei Mozilla.
- Foaie de înșelăciune de aliniere a cutiei - schița lui Rachel Andrew este o resursă foarte utilă pentru a înțelege termenii de aliniere și definițiile acestora.