9. fejezet¶
A Flexbox egy CSS layout modul, amelyet a weboldalak elrendezésének és igazításának rugalmasabb és hatékonyabb módjára terveztek. Az elrendezés modellje egy konténeren (flex container) alapul, amelyben rugalmas elemek (flex items) találhatók. Ez a modul különösen hasznos a különböző méretű és elrendezésű elemek dinamikus és reszponzív kezelésére.
Flexbox Konténer¶
A Flexbox használatához először meghatározzuk a flex konténert. Ezt úgy érjük el, hogy display tulajdonságát flex vagy inline-flex értékre állítjuk.
Példa: egyszerű flex konténer létrehozása
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | |
A fenti példában egy egyszerű flex konténert állítunk be a display: flex; használatával.
A konténer három gyermekelemet tartalmaz, amelyek mindegyike a konténeren belül helyezkedik el.
Az elemek kék háttérszínt kaptak, fehér szövegekkel, és középre igazított tartalommal.
Tulajdonságok a Flex Konténerben¶
-
flex-direction: Meghatározza az elemek fő tengelyének irányát.row(alapértelmezett): Sorba rendezés.row-reverse: Sorba rendezés fordított irányban.column: Oszlopba rendezés.column-reverse: Oszlopba rendezés fordított irányban.
-
flex-wrap: Meghatározza, hogy az elemeknek be kell-e törniük egy új sorba/oszlopba, ha nem férnek el.nowrap(alapértelmezett): Nem törik új sorba.wrap: Új sorba törik.wrap-reverse: Új sorba törik fordított irányban.
-
justify-content: Igazítja az elemeket a fő tengely mentén.flex-start(alapértelmezett): Balra igazítás (sor) vagy felülre igazítás (oszlop).flex-end: Jobbra igazítás (sor) vagy alulra igazítás (oszlop).center: Középre igazítás.space-between: Egyenlő távolságra az elemek között.space-around: Egyenlő távolságra az elemek között, a széleken is térközzel.space-evenly: Egyenlő távolságra az elemek között, illetve a konténer szélétől.
-
align-items: Igazítja az elemeket a kereszt tengely mentén.stretch(alapértelmezett): Betöltik a konténer teljes magasságát.flex-start: Kezdőponthoz igazítás.flex-end: Végponthoz igazítás.center: Kereszt tengely középpontjához igazítás.baseline: Az elemek alapvonalához igazítás.
-
align-content: Igazítja a sorokat, ha több sor van és a flex-wrap be van kapcsolva.stretch(alapértelmezett): A sorok kitöltik a rendelkezésre álló helyet.flex-start: Sorok igazítása a konténer kezdőpontjához.flex-end: Sorok igazítása a konténer végpontjához.center: Sorok középre igazítása.space-between: Sorok egyenletes elosztása térközzel közöttük.space-around: Sorok egyenletes elosztása térközzel közöttük és a széleken.
Példa: flex konténer gyerekekkel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | |
A fenti példában a flex konténer a flex-direction: row;, a justify-content: space-between; és az align-items: center;
beállításokkal bír. Ez azt jelenti, hogy a gyermekelemek egy sorba rendeződnek, egyenlő távolságra helyezkednek el egymástól,
középre igazítva a kereszt tengely mentén. A konténer teljes magassága meg van határozva (100vh),
így az elemek középen helyezkednek el a rendelkezésre álló térben.
Flexbox elemek¶
A Flexbox elemek tulajdonságai statikusan elhelyezett elemeket változtatnak rugalmas elemekké, amivel azok szabadabban és képlékenyebben helyezkednek el a flex konténerben.
-
order: Meghatározza a flex elemek rendjét.- Alapértelmezett értéke: 0. Az elemek növekvő sorrendben lesznek elhelyezve az order értékük alapján.
- Alapértelmezett értéke: 0. Az elemek növekvő sorrendben lesznek elhelyezve az order értékük alapján.
-
flex-grow: Meghatározza, hogy az elem mennyire nőhet a rendelkezésre álló helyen belül.- Alapértelmezett értéke: 0. Az elem nem fog nőni.
- Alapértelmezett értéke: 0. Az elem nem fog nőni.
-
flex-shrink: Meghatározza, hogy az elem mennyire zsugorodhat a rendelkezésre álló helyen belül.- Alapértelmezett értéke: 1. Az elem zsugorodhat.
-
flex-basis: Meghatározza az elem alapméretét a növekedés és zsugorodás előtt. Flex használata esetén awidthés aheighthelyett ezen tulajdonság használata javasolt.- Alapértelmezett értéke: auto.
-
flex: A fenti három tulajdonság összevonására szolgál.flex: 1 0 200pxesetén aflex-grow1, aflex-shrink0, míg aflex-basis200px lesz. -
align-self: Felülírja az egyedi elemek align-items beállítását.- Lehetséges értékei:
auto,flex-start,flex-end,center,baseline,stretch.
- Lehetséges értékei:
Példa: flex-grow használata
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | |
A fenti példában három elem található a flex konténerben, mindegyik flex-grow: 1; beállítással,
így egyenlően osztoznak a rendelkezésre álló helyen. Az első elemre alkalmaztuk a flex-grow: 2; beállítást,
ami miatt az első elem kétszer nagyobb, mint a többi. Ez a példa megmutatja, hogy a Flexbox hogyan képes dinamikusan és
rugalmasan kezelni az elosztási arányokat a gyermekelemek között.
Forrás, egyéb érdekességek¶
https://css-tricks.com/snippets/css/a-guide-to-flexbox/