Junior
Šta je Flexbox?
sobes.tech АИ
Одговор од АИ
Flexbox (Fleksibilni Box Layout) je jednostrani model rasporeda u CSS-u, namenjen za raspodelu prostora između elemenata u kontejneru i moćne mogućnosti poravnanja. Omogućava lako upravljanje veličinama, redosledom i poravnanjem dečjih elemenata (flex-elemenata) unutar roditeljskog kontejnera (flex-kontejnera), nezavisno od njihovog početnog reda ili veličina.
Ključne koncepcije Flexbox-a:
- Flex-kontejner: Element sa
display: flexilidisplay: inline-flex. U njemu se određuju pravila rasporeda za njegove direktne decu. - Flex-elemenata: Direktni deca flex-kontejnera. Na njih se primenjuju svojstva Flexbox-a koja određuju njihovo ponašanje unutar kontejnera.
- Glavna osa (main axis): Osa duž koje se raspoređuju flex-elemenati. Podrazumevano je horizontalna (sa leva na desno), ali može biti promenjena svojstvom
flex-direction. - Presek osa (cross axis): Osa koja je normalna na glavnu osu.
- Početak glavne ose (main start) / Kraj glavne ose (main end): Početak i kraj duž glavne ose.
- Početak presek ose (cross start) / Kraj presek ose (cross end): Početak i kraj duž presek ose.
Osnovne osobine Flexbox-a za flex-kontejner:
display: Određuje da li je element flex-kontejner (flexiliinline-flex).flex-direction: Određuje pravac glavne ose (row,row-reverse,column,column-reverse).flex-wrap: Određuje da li će se flex-elemenata prebacivati u novi red/kolonu ako nema mesta (nowrap,wrap,wrap-reverse).justify-content: Poravnava flex-elemenate duž glavne ose (flex-start,flex-end,center,space-between,space-around,space-evenly).align-items: Poravnava flex-elemenate duž presek ose (flex-start,flex-end,center,baseline,stretch).align-content: Poravnava redove flex-elemenata (ako ih ima više zbogflex-wrap) duž presek ose.
Osnovne osobine flex-elemenata:
order: Određuje redosled prikaza flex-elemenata (podrazumevano 0).flex-grow: Koeficijent rasta flex-elemenata, koji određuje koliko može da se poveća da popuni dostupni prostor.flex-shrink: Koeficijent skupljanja flex-elemenata, koji određuje koliko može da se smanji da bi se izbeglo prelivanje.flex-basis: Početna veličina flex-elemenata pre raspodele slobodnog prostora.flex: Skraćenica zaflex-grow,flex-shrinkiflex-basis.align-self: Prepisujealign-itemsza konkretan flex-elemenat.
Primer upotrebe:
HTML:
<div class="flex-container">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
CSS:
.flex-container {
display: flex; /* Čini kontejner flex-kontejnerom */
justify-content: center; /* Poravnava elemente na sredinu glavne ose */
align-items: center; /* Poravnava elemente na sredinu presek ose */
height: 200px; /* Za demonstraciju poravnanja */
border: 1px solid black;
}
.flex-item {
width: 50px;
height: 50px;
background-color: lightblue;
margin: 10px;
}
Glavne prednosti Flexbox-a:
- Lako poravnanje elemenata horizontalno i vertikalno.
- Fleksibilno raspoređivanje prostora između elemenata.
- Laka promena reda elemenata.
- Responzivni dizajn bez korišćenja float i pozicije.
- Dobro podržan u modernim pregledačima.