Właściwość CSSFlexbox

flex

Skrót ustawiający flex-grow, flex-shrink i flex-basis elementu.

Wartość domyślna
0 1 auto
Dziedziczona
Nie
Animowalna
tak, liczby i długość
Dotyczy
elementy flex
JavaScript
element.style.flex = "1"
Na tej stronie

Przykład

#
CSS
.app {
  display: flex;
  gap: 12px;
}

.app .sidebar { flex: 0 0 160px; }
.app .content { flex: 1; }
Podgląd

Definicja i zastosowanie

#

Właściwość flex łączy trzy właściwości elementu flex: zdolność do wzrostu (flex-grow), do kurczenia się (flex-shrink) i rozmiar bazowy (flex-basis). To najczęściej używany sposób sterowania rozmiarem elementów we Flexboxie.

Warto zapamiętać kilka gotowych zapisów. flex: 1 oznacza równe kolumny dzielące całe miejsce (1 1 0%). flex: auto pozwala rosnąć i kurczyć się od rozmiaru treści (1 1 auto). flex: none zamraża element w naturalnym rozmiarze (0 0 auto).

Skrót ustawia sensowniejsze wartości domyślne niż pojedyncze właściwości: gdy podasz tylko liczbę, flex-basis staje się 0%, a nie auto.

Składnia

#
Składnia
flex: none | auto | <flex-grow> <flex-shrink>? <flex-basis>?;

Wartości

#
  • 0 1 auto

    initial

    Wartość domyślna: rozmiar z treści, bez rośnięcia.
  • 1

    Wszystkie elementy mają równą szerokość, niezależnie od treści.
  • auto

    Elementy rosną, ale od rozmiaru swojej treści, więc dłuższe są szersze.
  • none

    Element 2 nie rośnie ani się nie kurczy, pozostałe dzielą miejsce.
  • 2

    Element 2 jest dwa razy szerszy od pozostałych z flex: 1.

Wartości w praktyce

#

0 1 auto

Wartość domyślna: rozmiar z treści, bez rośnięcia.
.demo .box { flex: 0 1 auto; }

1

Wszystkie elementy mają równą szerokość, niezależnie od treści.
.demo .box { flex: 1; }

auto

Elementy rosną, ale od rozmiaru swojej treści, więc dłuższe są szersze.
.demo .box { flex: auto; }

none

Element 2 nie rośnie ani się nie kurczy, pozostałe dzielą miejsce.
.demo .box { flex: 1; }
.target { flex: none; }

2

Element 2 jest dwa razy szerszy od pozostałych z flex: 1.
.demo .box { flex: 1; }
.target { flex: 2; }

Obsługa przeglądarek

#

Szeroko dostępne

Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.

  • Chrome
  • Edge
  • Firefox
  • Safari

Dobre praktyki

#
  • Zapamiętaj trzy zapisy: flex: 1 (równe części), flex: auto (od treści) i flex: none (bez zmian rozmiaru).
  • Używaj skrótu zamiast trzech osobnych właściwości. Unikniesz niespodzianek z domyślnym flex-basis.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.