Sobes.tech
Junior

Do czego służy flex w CSS?

sobes.tech AI

Odpowiedź od AI

Flexbox jest używany do tworzenia jednowymiarowych układów elementów w kontenerze. Umożliwia zarządzanie wyrównaniem, rozkładem przestrzeni i kolejnością elementów.

Podstawowe pojęcia:

  • Kontener Flex: Element nadrzędny, któremu przypisuje się display: flex lub display: inline-flex.
  • Elementy Flex: Elementy potomne kontenera Flex.
  • Oś główna: Główna oś kontenera Flex. Definiowana przez właściwość flex-direction. Domyślnie pozioma (row).
  • Oś krzyżowa: Oś prostopadła do osi głównej.

Kluczowe właściwości dla kontenera Flex:

  • display: Określa, że element jest kontenerem flex (flex lub inline-flex).
  • flex-direction: Ustawia kierunek osi głównej (row, row-reverse, column, column-reverse).
  • justify-content: Wyrównuje elementy flex wzdłuż osi głównej (flex-start, flex-end, center, space-between, space-around, space-evenly).
  • align-items: Wyrównuje elementy flex wzdłuż osi krzyżowej (flex-start, flex-end, center, baseline, stretch).
  • flex-wrap: Określa, czy elementy flex mają zawijać się do nowego wiersza/kolumny, gdy brakuje miejsca (nowrap, wrap, wrap-reverse).

Kluczowe właściwości dla elementów flex:

  • order: Ustawia kolejność wizualną elementu flex (domyślnie 0).
  • flex-grow: Określa, jak bardzo element może rosnąć w porównaniu do innych (domyślnie 0).
  • flex-shrink: Określa, jak bardzo element może się kurczyć w porównaniu do innych (domyślnie 1).
  • flex-basis: Ustawia początkowy rozmiar elementu flex przed rozdzieleniem wolnej przestrzeni (domyślnie auto).
  • align-self: Nadpisuje wyrównanie elementu flex wzdłuż osi krzyżowej dla pojedynczego elementu.

Przykład użycia:

.container {
  display: flex;
  justify-content: center; /* Wyśrodkowanie wzdłuż osi głównej */
  align-items: center; /* Wyśrodkowanie wzdłuż osi krzyżowej */
  height: 200px;
  border: 1px solid black;
}

.item {
  width: 50px;
  height: 50px;
  background-color: lightblue;
  margin: 5px;
}
<div class="container">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>

Umożliwia to łatwe wyśrodkowanie elementów, tworzenie responsywnych siatek i zarządzanie przestrzenią między elementami.