CSS Flexbox: A Modern Elrendezés

CSS Flexbox konténer és az elemek vízszintes és függőleges igazítása

A webfejlesztés történelmében az elemek egymás mellé rendezése (layout építés) mindig is egy rémálom volt. A fejlesztők HTML táblázatokat, majd később CSS float trükköket használtak, amik folyamatosan széteső oldalakat eredményeztek. Ennek vetett véget a Flexible Box Layout, röviden a Flexbox.

Mi az a Flexbox?

A Flexbox egy egydimenziós elrendezési modell. Arra találták ki, hogy egy konténeren belül a gyermek elemeket tökéletesen el tudjuk osztani egy sorban (vízszintesen) vagy egy oszlopban (függőlegesen), még akkor is, ha a méretük ismeretlen vagy dinamikusan változik.

A Flex Konténer aktiválása

A Flexbox használatához először ki kell jelölnünk egy szülő elemet (konténert), és meg kell adnunk neki a display: flex; tulajdonságot. Amint ezt megtesszük, a benne lévő közvetlen gyermek elemek "flex itemekké" válnak, és alapértelmezésben egymás mellé ugranak egy sorba.

<div class="flex-kontener">
    <div class="doboz">1</div>
    <div class="doboz">2</div>
    <div class="doboz">3</div>
</div>
.flex-kontener {
    display: flex;
}

A legfontosabb Flexbox tulajdonságok

A Flexbox igazi ereje abban rejlik, ahogyan a konténeren belül igazítani tudjuk az elemeket. Ezt a szülő elemen (a konténeren) lévő tulajdonságokkal vezéreljük.

1. flex-direction (Az irány)

Meghatározza, hogy az elemek milyen irányban sorakozzanak fel.

  • row (alapértelmezett): Balról jobbra, egy sorban.
  • column: Fentről lefelé, egy oszlopban (mobilos nézetnél életmentő).

2. justify-content (Igazítás a főtengelyen)

Ha az irány row, akkor ez a vízszintes igazítást jelenti. Hogyan osszuk el az üres helyet az elemek között?

  • flex-start: Minden elem balra tolódik.
  • center: Minden elem középre kerül.
  • space-between: Az első elem a bal szélre, az utolsó a jobb szélre tapad, a többi között pedig egyenlő üres hely lesz. (Tökéletes navigációs menükhöz!)

3. align-items (Igazítás a kereszttengelyen)

Ha az irány row, akkor ez a függőleges igazítást jelenti.

  • stretch (alapértelmezett): Az elemek megnyúlnak, hogy kitöltsék a konténer magasságát.
  • center: Az elemek függőlegesen középre kerülnek.

A Szent Grál: Elem tökéletes középre igazítása

Évtizedekig vicc tárgya volt a fejlesztők között, hogy mennyire nehéz egy div-et függőlegesen és vízszintesen is pontosan középre igazítani a képernyőn. A Flexboxszal ez pontosan 3 sor kód:

.tokeletes-kozep {
    display: flex;
    justify-content: center; /* Vízszintesen középre */
    align-items: center;     /* Függőlegesen középre */
    height: 100vh;           /* A konténer kitölti a teljes képernyőmagasságot */
}
← Előző lecke Következő lecke: CSS Grid →