Junior
Šta je Flexbox?
sobes.tech АИ
Одговор од АИ
Flexbox (Fleksibilni raspored kutije) — to je CSS modul namenjen za kreiranje složenih i prilagodljivih rasporeda. Omogućava upravljanje rasporedom, poravnanjem i raspodelom prostora između elemenata kontejnera, čak i ako su njihovi dimenzije nepoznate ili dinamične.
Osnovne koncepcije Flexbox-a:
- Glavna osa (main axis): Osa duž koje se postavljaju elementi. Podrazumevano je horizontalna (sa leva na desno).
- Prečna osa (cross axis): Osa koja je perpendicularna glavnoj osi. Podrazumevano je vertikalna (odozgo na dole).
- Kontejner (flex container): Element na koji se primenjuju svojstva Flexbox-a (
display: flexilidisplay: inline-flex). - Elementi (flex items): Dete elementi kontejnera.
Svojstva za Flex kontejner:
display:flexiliinline-flexflex-direction: Određuje pravac glavne ose (row, row-reverse, column, column-reverse)flex-wrap: Određuje da li će se elementi prelamati u novi red (nowrap, wrap, wrap-reverse)justify-content: Poravnanje elemenata duž glavne ose (flex-start, flex-end, center, space-between, space-around, space-evenly)align-items: Poravnanje elemenata duž prečne ose (flex-start, flex-end, center, baseline, stretch)align-content: Poravnanje redova ili kolona duž prečne ose u višerednom kontejneru (flex-start, flex-end, center, space-between, space-around, stretch)
Svojstva za Flex elemente:
order: Određuje redosled elementa u kontejneruflex-grow: Određuje koliko element treba da se poveća da popuni dostupni prostorflex-shrink: Određuje koliko element treba da se smanji ako nema dovoljno mestaflex-basis: Određuje početnu veličinu elementa pre raspodele prostoraflex: Skraćeno svojstvo zaflex-grow,flex-shrinkiflex-basisalign-self: Poništava poravnavanje elementa duž prečne ose (flex-start, flex-end, center, baseline, stretch, auto)
Primer upotrebe:
/* Kontejner */
.container {
display: flex; /* Uključuje flexbox */
flex-direction: row; /* Elementi se postavljaju u red */
justify-content: center; /* Poravnanje na sredinu horizontalno */
align-items: center; /* Poravnanje na sredinu vertikalno */
height: 200px; /* Postavlja visinu kontejnera */
border: 1px solid black;
}
/* Elementi */
.item {
width: 50px;
height: 50px;
background-color: lightblue;
margin: 5px;
}
Flexbox znatno olakšava kreiranje prilagodljivih rasporeda u poređenju sa tradicionalnim metodama (float, inline-block, table).