Flexbox w CSS i HTML (Samouczek) – tworzenie responsywnych układów

Flexbox: Kontrolowanie zmniejszenia w kierunku flex za pomocą flex-shrink

Wszystkie filmy z tutorialu Flexbox w CSS & HTML (Samouczek) - rozwijanie responsywnych układów

W tym poradniku zajmiemy się właściwością modyfikatora flex-shrink w CSS. Ta opcja jest częścią modelu Flexbox, który pozwala tworzyć elastyczne układy, które dostosowują się do różnych rozmiarów ekranu. Podczas gdy w poprzednim filmie omówiliśmy flex-grow, który reguluje, jak elementy w Kontenerze Flexa mogą rosnąć, tym razem skupiamy się na zwężaniu elementów, gdy miejsca w kontenerze jest mniej niż podana wartość flex-basis. W tym wpisie dowiesz się, jak za pomocą flex-shrink możesz precyzyjnie ograniczać lub dostosowywać zwężanie elementów Flexboxa.

Najważniejsze wnioski

  • flex-shrink określa, o ile element może się zebrać, gdy miejsca brakuje.
  • Domyślną wartością dla flex-shrink jest 1, co oznacza, że element może zająć miejsce w zależności od dostępnej przestrzeni oraz innych zdefiniowanych elementów w kontenerze.
  • Można użyć flex-shrink, aby określić określony stosunek zwężenia między kilkoma elementami.

Instrukcja krok po kroku

Poniżej wyjaśnię Ci kroki, jak skutecznie wykorzystać flex-shrink. Każdy krok zilustruję zmiennymi zrzutów ekranu, które później możesz zastąpić odpowiednimi zrzutami ekranu z filmu.

Najpierw zobaczysz podstawowe zastosowanie układu Flexbox w CSS. Masz trzy elementy o flex-basis 100 pikseli. Jeśli w kontenerze Flexa jest wystarczająco dużo miejsca, wszystko pozostaje zgodnie z planem.

Flexbox: Kontrola zmniejszania w kierunku flex za pomocą flex-shrink

Następnie zmniejszymy wysokość kontenera do 200 pikseli. W tym przypadku wymagana przestrzeń jest większa niż wysokość kontenera. Elementy wciąż mają flex-basis 100 pikseli i dlatego nie mogą się zmniejszać, ponieważ ustawiliśmy flex-shrink na 0.

Flexbox: Kontrola zwężania w kierunku flex za pomocą flex-shrink

Aby aktywować mechanizm zmniejszania, zmień wartość flex-shrink. Ustaw go na 1 dla elementu nawigacyjnego, informując CSS, że element nawigacyjny powinien maksymalnie się zmniejszyć.

Flexbox: Kontrola zwężenia w kierunku flex za pomocą flex-shrink

Zapisz teraz swoje zmiany, a zobaczysz, że element nawigacyjny zostanie proporcjonalnie zmniejszony do minimalnej wysokości określonej przez treść.

Flexbox: Kontrola zwężania w kierunku flex za pomocą flex-shrink

Jeśli chcesz, aby wszystkie elementy równomiernie się zmniejszały, ustaw flex-shrink na 1 dla wszystkich elementów. Jeśli teraz kontener stanie się mniejszy niż wymagana przestrzeń, wszystkie elementy odpowiednio się zmniejszą.

Flexbox: Kontrola pomniejszenia w kierunku flex za pomocą flex-shrink

Podsumowując efekty różnych wartości flex-shrink na układ, wybierz proporcje 1:1:2. W tym przypadku główny obszar (main) otrzymuje największą część zmniejszenia, podczas gdy pozostałe elementy otrzymują mniejsze części.

Flexbox: Kontrolowanie zmniejszenia w kierunku flex za pomocą flex-shrink

Oznacza to, że element main będzie zajmować więcej miejsca lub mniej miejsca niż dwa inne elementy w razie braku miejsca. Jeśli jednak chcesz uzyskać równomierną dostosowującą się do siebie odpowiedź, możesz ustawić flex-shrink dla wszystkich elementów na tę samą wartość.

Flexbox: Kontrolowanie zmniejszenia w kierunku flex za pomocą flex-shrink

Ostatecznie można połączyć wartości flex-grow, flex-shrink i flex-basis, dając większą elastyczność w projektowaniu układów w CSS. Pamiętaj, aby dostosować je zawsze do wymagań Twojego projektu.

Flexbox: Kontrolowanie zmniejszenia w kierunku flex za pomocą flex-shrink

Podsumowanie

W tym samouczku nauczyłeś(aś) się, jak korzystać z flex-shrink w CSS, aby kontrolować zmiany rozmiarów elementów Flexbox. Poznałeś różne sposoby definiowania zwężania i jego wpływ na układ.

Najczęstsze pytania

Jak działa flex-shrink?flex-shrink określa, o ile element może się zebrać, gdy dostępna przestrzeń jest mniejsza niż flex-basis.

Jaka jest domyślna wartość flex-shrink?Domyślną wartością flex-shrink jest 1, co oznacza równomierne zwężenie elementów.

Jak ustawić flex-shrink dla wielu elementów?Ustawiając tę samą wartość flex-shrink dla wszystkich elementów, zwężenie jest równomiernie rozprowadzone.

Czy mogę użyć flex-shrink w połączeniu z flex-grow?Tak, flex-shrink, flex-grow i flex-basis mogą być używane razem, aby uzyskać elastyczny układ.

Co się dzieje, gdy flex-shrink jest ustawiony na 0?Jeśli flex-shrink wynosi 0, elementy nie będą się kurczyć, nawet jeśli kontener jest mniejszy niż suma flex-basisy.