Przejdź do głównej zawartości

Flexbox – zasady działania

Flexbox – zasady działania

Flexbox (Flexible Box Layout) to moduł CSS zaprojektowany do tworzenia elastycznych layoutów jednowymiarowych. Pozwala na łatwe rozmieszczanie elementów w wierszu lub kolumnie, kontrolę ich rozmiaru, wyrównanie i dystrybucję przestrzeni. Flexbox rozwiązuje problemy, które wcześniej wymagały skomplikowanych hacków z float i position. W tym opracowaniu poznasz obie osie Flexbox, właściwości kontenera i elementów oraz praktyczne zastosowania.

  • Standard branżowy – Flexbox jest używany na niemal każdej stronie internetowej
  • Prostota layoutu – centrowanie, równomierne rozmieszczenie, responsywność
  • Wsparcie przeglądarek – pełne wsparcie we wszystkich nowoczesnych przeglądarkach
  • Fundament dla Grid – zrozumienie Flexbox ułatwia naukę CSS Grid
  • Egzaminy zawodowe – temat pojawia się na egzaminach INF.03/INF.04
  1. Zrozumieć koncepcję osi głównej (main axis) i poprzecznej (cross axis)
  2. Poznać właściwości kontenera flex: display, flex-direction, justify-content, align-items
  3. Opanować właściwości elementów: flex-grow, flex-shrink, flex-basis, align-self
  4. Umieć wyjaśnić różnicę między justify-content a align-items
  5. Stworzyć praktyczne layouty: nawigację, karty produktów, centrowanie
  1. Podstawy Flexbox

    • Włączenie Flexbox: display: flex / display: inline-flex
    • Kontener flex (flex container) vs element flex (flex item)
    • Model jednowymiarowy – wiersz LUB kolumna
  2. Osie Flexbox

    • Oś główna (main axis) – kierunek rozmieszczenia elementów
    • Oś poprzeczna (cross axis) – prostopadła do głównej
    • Zmiana kierunku osi: flex-direction
  3. Właściwości kontenera

    • flex-direction – row, row-reverse, column, column-reverse
    • justify-content – rozmieszczenie wzdłuż osi głównej
    • align-items – wyrównanie wzdłuż osi poprzecznej
    • flex-wrap – zawijanie elementów do nowej linii
    • gap – odstępy między elementami
  4. Właściwości elementów

    • flex-grow – jak element rośnie
    • flex-shrink – jak element się kurczy
    • flex-basis – początkowy rozmiar elementu
    • align-self – nadpisanie align-items dla pojedynczego elementu

Przykład 1

Layout 3 kolumn – równomiernie rozmieszczone elementy

Przykład 2

Centrowanie elementu – idealnie wyśrodkowany element

Przykład 3

Zmiana kierunku osi – column vs row

Przykład 4

Nawigacja – logo po lewej, menu po prawej

/* Włączenie Flexbox */
.container {
display: flex; /* Kontener staje się flex container */
}
/* Kierunek osi głównej */
.row {
flex-direction: row; /* Domyślnie: elementy w wierszu (→) */
}
.row-reverse {
flex-direction: row-reverse; /* Elementy w wierszu od prawej (←) */
}
.column {
flex-direction: column; /* Elementy w kolumnie (↓) */
}
.column-reverse {
flex-direction: column-reverse; /* Elementy w kolumnie od dołu (↑) */
}
/* Zawijanie elementów */
.wrap {
flex-wrap: wrap; /* Elementy zawijają się do nowej linii */
}
.nowrap {
flex-wrap: nowrap; /* Domyślnie: wszystkie w jednej linii */
}
/* Skrót: flex-direction + flex-wrap */
.container {
flex-flow: row wrap;
}
  • align-content – rozmieszczenie linii przy flex-wrap
  • Flexbox vs Grid – kiedy używać którego
  • Zagnieżdżone Flexbox – kontener flex jako element flex
  • Responsywny Flexbox – zmiana kierunku w media queries
  • Problemy z Flexbox – min-width: 0, overflow
  • Narzędzia deweloperskie – debugowanie Flexbox w DevTools
  1. Wstęp (0.5 strony) – problem layoutu przed Flexbox
  2. Podstawy (1 strona) – kontener, elementy, włączenie Flexbox
  3. Osie (1 strona) – main axis, cross axis, flex-direction
  4. Właściwości kontenera (1.5 strony) – justify-content, align-items, flex-wrap
  5. Właściwości elementów (1 strony) – flex-grow, flex-shrink, flex-basis
  6. Przykłady praktyczne (1 strony) – nawigacja, karty, layout
  7. Podsumowanie (0.5 strony) – kiedy używać Flexbox
  8. Bibliografia
  1. Czym różni się justify-content od align-items?
  2. Jak zmienia się oś główna przy flex-direction: column?
  3. Co robi flex: 1 i jak to działa?
  4. Jak wyśrodkować element idealnie w pionie i poziomie?
  5. Jaka jest różnica między space-between a space-evenly?
  6. Kiedy używać flex-wrap: wrap?
  7. Co oznacza flex: 0 0 200px?
  8. Jak align-self różni się od align-items?

To więcej niż praca zaliczeniowa

Flexbox to fundament nowoczesnego CSS. Bez niego trudno wyobrazić sobie budowanie layoutów. Opanowanie Flexbox otwiera drogę do CSS Grid i zaawansowanych technik responsywności.

Wykorzystaj lekcje – konsultuj wątpliwości, pokazuj postępy! Pracuj iteracyjnie – outline -> draft -> kod -> redakcja