Den place-items
egendom i CSS är en förkortning för align-items
och justify-items
egenskaper, kombinera dem till en enda förklaring.
En vanlig användning är att göra horisontell och vertikal centrering med Grid:
.center-inside-of-me ( display: grid; place-items: center; )
Dessa egenskaper har fått användning med introduktionen av Flexbox- och Grid-layouter, men tillämpas också på:
- Lådor på blocknivå
- Absolut placerade lådor
- Statisk position av absolut placerade lådor
- Tabellceller
Syntax
Egenskapen accepterar dubbla värden, det första för align-items
och det andra för justify-items
. Som en uppdatering, align-items
justerar innehållet längs den vertikala (kolumn) axeln medan den justify-items
justeras längs den horisontella (raden) axeln.
.item ( display: grid; place-items: start center; )
Detta är detsamma som att skriva:
.item ( display: grid; align-items: start; justify-items: center; )
Om bara ett värde anges, anger det båda egenskaperna. Till exempel detta:
.item ( display: grid; place-items: start; )
... är detsamma som att skriva detta:
.item ( display: grid; align-items: start; justify-items: start; )
Accepterade värden
Vad som gör den här egenskapen intressant är att den beter sig annorlunda utifrån det sammanhang den används. Vissa värden gäller till exempel bara Flexbox och fungerar inte i rutnätinställning. Dessutom gäller vissa värden för align-items
egenskapen där andra gäller för justify-items
sidan.
Vidare kan värdena själva betraktas som att de faller in i ett antal typer av inriktning: kontextuell, distribution, positionell (som blir självpositionell om den direkt tillämpas på ett barnelement i layouten) och baslinjen.
Rachel Andrew har en utmärkt Box Alignment fuskark som hjälper till att illustrera effekten av värdena.
Värde | Typ | Beskrivning |
---|---|---|
auto | Kontextuell | Värdet justeras därefter baserat på elementets sammanhang. Det använder justify-items värdet av elementets överordnade element. Om det inte finns någon överordnad eller om den tillämpas på ett element som placeras med absolute blir värdet normal . |
normal | Kontextuell | Tar standardbeteendet för layoutkontexten där den tillämpas. • Layouter på blocknivå: start • Absolut positionering: start för ersatta absoluta element och stretch för alla andra• Tabelllayouter: Värde ignoreras • Flexbox-layouter: Värde ignoreras • Rutnätlayouter: om stretch inte ett bildförhållande eller inneboende storlek används där det beter sig tycka omstart |
stretch | Distribution | Expanderar elementet till båda kanterna på behållaren vertikalt för align-items och horisontellt för justify-items . |
start | Positionell | Alla element är inriktade mot varandra på behållarens startkant (vänster) |
end | Positionell | Alla element är inriktade mot varandra på behållarens slutkant (högra) |
center | Positionell | Objekt är inriktade bredvid varandra mot behållarens mitt |
left | Positionell | Objekt är inriktade bredvid varandra mot behållarens vänstra sida. Om egenskapen inte är parallell med en vanlig topp-, höger-, botten-, vänsteraxel, beter sig den som end . |
right | Positionell | Objekt är inriktade bredvid varandra mot behållarens högra sida. Om egenskapen inte är parallell med en vanlig topp-, höger-, botten-, vänsteraxel, beter sig den som start . |
flex-start | Positionell | Ett endast flexbox-värde (som faller tillbaka till start ) där föremål packas mot behållarens startkant. |
flex-end | Positionell | Ett enda flexbox-värde (som faller tillbaka till end ) där föremål packas mot behållarens slutkant. |
self-start | Självpositionering | Låter ett objekt i en layout anpassa sig mot behållarens kant baserat på sin egen startsida. I grund och botten åsidosätter det inställda värdet på föräldern. |
self-end | Självpositionering | Låter ett objekt i en layout anpassa sig mot behållarens kant utifrån sin egen ändsida istället för att ärva behållarens positionsvärde. I grund och botten åsidosätter det inställda värdet på föräldern. |
first baseline last baseline | Baslinje | Justerar alla element i en grupp (dvs. celler inom en rad) genom att matcha deras inriktningsbaslinjer. Standardinställningen är first om den baseline används ensam. |
Webbläsarstöd
Den här egenskapen ingår i specifikationen CSS Box Alignment Model Level 3.
Webbläsarstödet har blivit ganska brett och i stort sett bara användbart:
- Edge 79+ (Post Chromium transision)
- Firefox 45+
- Chrome 59+
- Safari 11+
Referenser
- CSS Box Alignment Model Level 3 - Den officiella specifikationen där
place-items
egenskapen ursprungligen definierades. - Mozilla Developer Network - Mozilla-teamets dokumentation.
- Box Alignment Cheat Sheet - Rachel Andrews disposition är en super hjälpsam resurs för att förstå justeringsvillkor och deras definitioner.