Junior
Čo je Flexbox?
sobes.tech AI
Odpoveď od AI
Flexbox (Flexibilný Box Layout) je jednorozmerný model rozloženia v CSS, ktorý je určený na rozdelenie miesta medzi prvkami v kontajneri a má mocné možnosti zarovnania. Umožňuje ľahko spravovať veľkosti, poradie a zarovnanie detských prvkov (flex-prvkov) vo vnútri rodičovského kontajnera (flex-kontajnera), nezávisle od ich pôvodného poradia alebo veľkostí.
Kľúčové koncepty Flexboxu:
- Flex-kontajner: Element s
display: flexalebodisplay: inline-flex. V ňom sú stanovené pravidlá rozloženia pre jeho priame deti. - Flex-prvky: Priame deti flex-kontajnera. Na ne sa aplikujú vlastnosti Flexboxu, ktoré určujú ich správanie vo vnútri kontajnera.
- Hlavná os (main axis): Os, pozdĺž ktorej sú rozmiestnené flex-prvky. Predvolene je horizontálna (zľava doprava), ale môže byť zmenená vlastnosťou
flex-direction. - Križová os (cross axis): Os, ktorá je kolmá na hlavnú os.
- Začiatok hlavnej osi (main start) / Koniec hlavnej osi (main end): Začiatok a koniec pozdĺž hlavnej osi.
- Začiatok križovej osi (cross start) / Koniec križovej osi (cross end): Začiatok a koniec pozdĺž križovej osi.
Hlavné vlastnosti Flexboxu pre flex-kontajner:
display: Určuje, že prvok je flex-kontajner (flexaleboinline-flex).flex-direction: Určuje smer hlavnej osi (row,row-reverse,column,column-reverse).flex-wrap: Určuje, či sa flex-prvky budú prenášať na nový riadok/stĺpec, ak nie je miesto (nowrap,wrap,wrap-reverse).justify-content: Zarovnáva flex-prvky pozdĺž hlavnej osi (flex-start,flex-end,center,space-between,space-around,space-evenly).align-items: Zarovnáva flex-prvky pozdĺž križovej osi (flex-start,flex-end,center,baseline,stretch).align-content: Zarovnáva riadky flex-prvkov (ak ich je viac kvôliflex-wrap) pozdĺž križovej osi.
Hlavné vlastnosti flex-prvkov:
order: Určuje poradie zobrazenia flex-prvku (predvolené 0).flex-grow: Koeficient rastu flex-prvku, ktorý určuje, ako veľmi sa môže zväčšiť, aby vyplnil dostupný priestor.flex-shrink: Koeficient zmenšenia flex-prvku, ktorý určuje, ako veľmi sa môže zmenšiť, aby sa zabránilo pretečeniu.flex-basis: Počiatočná veľkosť flex-prvku pred rozdelením voľného priestoru.flex: Skrátená forma preflex-grow,flex-shrinkaflex-basis.align-self: Prepíšealign-itemspre konkrétny flex-prvok.
Príklad použitia:
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; /* Robí z kontajnera flex-kontajner */
justify-content: center; /* Zarovnáva prvky na stred hlavnej osi */
align-items: center; /* Zarovnáva prvky na stred križovej osi */
height: 200px; /* Pre demonštráciu zarovnania */
border: 1px solid black;
}
.flex-item {
width: 50px;
height: 50px;
background-color: lightblue;
margin: 10px;
}
Hlavné výhody Flexboxu:
- Jednoduché zarovnanie prvkov horizontálne aj vertikálne.
- Flexibilné rozdelenie priestoru medzi prvkami.
- Jednoduchá zmena poradia prvkov.
- Responzívny dizajn bez použitia float a pozície.
- Dobrá podpora v moderných prehliadačoch.