Sobes.tech
Junior

Jak działają właściwości flex-grow i flex-shrink?

sobes.tech AI

Odpowiedź od AI

flex-grow i flex-shrink określają, jak elementy dostosowują swój rozmiar w sposób responsywny w obrębie kontenera flex, gdy jest dostępna wolna przestrzeń lub jej brakuje.

flex-grow - określa współczynnik, według którego element powinien się powiększać, gdy w kontenerze jest dostępna wolna przestrzeń. Domyślna wartość to 0 (element się nie rozciąga). Jeśli kilka elementów ma flex-grow większe od 0, wolna przestrzeń jest rozdzielana między nimi proporcjonalnie do ich wartości flex-grow.

.item {
  flex-grow: 1; /* Element wykorzysta całą dostępną wolną przestrzeń */
}

flex-shrink - określa współczynnik, według którego element powinien się kurczyć, gdy w kontenerze brakuje miejsca. Domyślna wartość to 1 (element kurczy się proporcjonalnie do innych kurczących się elementów). Wartość 0 zapobiega kurczeniu się elementu.

.item {
  flex-shrink: 0; /* Element nie będzie się kurczył */
}

Razem z flex-basis tworzą skróconą właściwość flex: flex: <flex-grow> <flex-shrink> <flex-basis>.

Przykład użycia:

<div class="container">
  <div class="item item-1">Item 1</div>
  <div class="item item-2">Item 2</div>
</div>
.container {
  display: flex;
  width: 400px; /* Przykład stałej szerokości kontenera */
}

.item {
  flex-basis: 100px; /* Podstawowy rozmiar wszystkich elementów */
}

.item-1 {
  flex-grow: 1; /* Item 1 wykorzysta wolną przestrzeń */
}

.item-2 {
  flex-shrink: 0; /* Item 2 nie będzie się kurczył */
}

Jeśli kontener jest szerszy niż 200px (100px + 100px), item-1 zajmie całą pozostałą wolną przestrzeń. Jeśli kontener ma już 200px, item-2 zachowa swój podstawowy rozmiar 100px, a item-1 się skurczy.