Junior
Čo je Flexbox?
sobes.tech AI
Odpoveď od AI
Flexbox (Flexibilný rozloženie boxu) — je modul CSS určený na vytváranie zložitých a responzívnych rozložení. Umožňuje riadiť usporiadanie, zarovnanie a rozdelenie priestoru medzi prvkami kontajnera, aj keď ich rozmery sú neznáme alebo dynamické.
Hlavné koncepty Flexboxu:
- Hlavná os (main axis): Os, po ktorej sa rozmiestňujú prvky. Predvolene je horizontálna (zľava doprava).
- Prečná os (cross axis): Os, ktorá je kolmá na hlavnú os. Predvolene je vertikálna (zhora nadol).
- Kontajner (flex container): Element, na ktorý sa aplikujú vlastnosti Flexboxu (
display: flexalebodisplay: inline-flex). - Prvky (flex items): Dcérové prvky kontajnera.
Vlastnosti pre Flex-kontajner:
display:flexaleboinline-flexflex-direction: Určuje smer hlavnej osi (row, row-reverse, column, column-reverse)flex-wrap: Určuje, či sa prvky budú presúvať na nový riadok (nowrap, wrap, wrap-reverse)justify-content: Zarovnanie prvkov pozdĺž hlavnej osi (flex-start, flex-end, center, space-between, space-around, space-evenly)align-items: Zarovnanie prvkov pozdĺž prečnej osi (flex-start, flex-end, center, baseline, stretch)align-content: Zarovnanie riadkov alebo stĺpcov pozdĺž prečnej osi v viacriadkovom kontajneri (flex-start, flex-end, center, space-between, space-around, stretch)
Vlastnosti pre Flex prvky:
order: Určuje poradie prvku v kontajneriflex-grow: Určuje, o koľko sa má prvok zväčšiť, aby zaplnil dostupný priestorflex-shrink: Určuje, o koľko sa má prvok zmenšiť, ak nie je dostatok miestaflex-basis: Určuje počiatočnú veľkosť prvku pred rozdelením priestoruflex: Skrátené vlastnosti preflex-grow,flex-shrinkaflex-basisalign-self: Prepíše zarovnanie prvku pozdĺž prečnej osi (flex-start, flex-end, center, baseline, stretch, auto)
Príklad použitia:
/* Kontajner */
.container {
display: flex; /* Zapína flexbox */
flex-direction: row; /* Prvky sa rozmiestňujú v riadku */
justify-content: center; /* Zarovnanie na stred horizontálne */
align-items: center; /* Zarovnanie na stred vertikálne */
height: 200px; /* Nastavuje výšku kontajnera */
border: 1px solid black;
}
/* Prvky */
.item {
width: 50px;
height: 50px;
background-color: lightblue;
margin: 5px;
}
Flexbox výrazne uľahčuje tvorbu responzívnych rozložení v porovnaní s tradičnými metódami (float, inline-block, table).