Flexbox i CSS & HTML (vejledning) – udvikling af responsive layouts

Flexbox: Kontrol af formindskelse i flex-retning med flex-shrink

Alle videoer i tutorialen Flexbox i CSS & HTML (Tutorial) – udvikling af responsive layouts

I denne vejledning vil vi beskæftige os med CSS-ejendomsmarkøren flex-shrink. Denne mulighed er en del af Flexbox-modellen, der giver dig mulighed for at oprette fleksible layout, der tilpasser sig forskellige skærmstørrelser. Mens vi behandlede flex-grow i den sidste video, som styrer, hvordan elementer kan vokse i Flex-container, drejer det sig denne gang om elementers indsnævring, når pladsen i containeren er mindre end den angivne flex-basis. I dette indlæg lærer du, hvordan du med flex-shrink målrettet kan begrænse eller tilpasse formindskelsen af Flexbox-elementer.

Vigtigste indsigt

  • flex-shrink bestemmer, hvor meget et element kan formindskes, når der ikke er tilstrækkelig plads.
  • Standardværdien for flex-shrink er 1, hvilket betyder, at et element kan optage plads afhængigt af, hvor meget plads der er tilgængelig, og hvordan andre elementer i containeren er defineret.
  • Man kan anvende flex-shrink for at fastsætte en bestemt forhold for formindskningen mellem flere elementer.

Trin-for-trin vejledning

Nedenfor vil jeg forklare dig trinnene til at udnytte flex-shrink optimalt. Jeg vil forsyne hvert trin med skærmbillede-variabler, som du senere kan erstatte med de relevante skærmbilleder fra videoen.

Først ser du en grundlæggende brug af Flexbox i CSS. Du har tre elementer, der har en flex-basis på 100 pixels. Hvis der er tilstrækkelig plads i Flex-containeren, forbliver alt som planlagt.

Flexbox: Styring af formindskelse i flex-retning med flex-shrink

Nu reducerer vi højden på containeren til 200 pixels. I dette tilfælde er det plads, der er nødvendig, større end containerens højde. Elementerne har stadig en flex-basis på 100 pixels og kan derfor ikke formindskes, fordi vi har sat flex-shrink til 0.

Flexbox: Styring af formindskelse i flexretning med flex-shrink

For at aktivere formindskningsmekanismen ændrer du værdien af flex-shrink. Sæt den til 1 for elementet nav. Dermed informerer du CSS om, at elementet nav maksimalt skal formindskes.

Flexbox: Styring af formindskelse i flex-retning med flex-shrink

Gem nu dine ændringer, og du vil se, at nav-elementet formindskes proportionelt, helt ned til den minimale højde, der er angivet af indholdet.

Flexbox: Kontroller formindskelse i flex-retning med flex-shrink

Hvis du vil have, at alle elementer formindskes ens, så sæt flex-shrink til 1 for alle elementer. Hvis containeren nu bliver mindre end den nødvendige plads, formindskes alle elementer i overensstemmelse hermed.

Flexbox: Kontrollér formindskelse i flex-retning med flex-shrink

For at illustrere, hvordan de forskellige flex-shrink-værdier påvirker layoutet, vælg et forhold som f.eks. 1:1:2. I dette tilfælde får hovedområdet (main) den største del af formindskningen, mens de andre elementer hver får de mindre dele.

Flexbox: Styring af formindskelse i flexretning med flex-shrink

Dette betyder, at hovedelementet vil tage mere plads i tilfælde af pladsmangel eller vil have brug for mindre plads i forhold til de to andre elementer. Hvis du derimod ønsker en knugende layout-tilpasning, kan du også sætte flex-shrink til samme værdi for alle elementer.

Flexbox: Styring af formindskelse i fleksretning med flex-shrink

Til sidst kan du kombinere værdierne for flex-grow, flex-shrink og flex-basis, hvilket giver dig mere fleksibilitet til layoutdesign i CSS. Sørg altid for at tilpasse dem til kravene i dit design.

Flexbox: Styring af formindskelse i flex-retning med flex-shrink

Opsummering

I denne vejledning har du lært, hvordan du bruger flex-shrink i CSS til at styre størrelsesændringen af Flexbox-elementer. Du har lært forskellige metoder til at definere formindskningen og hvordan det påvirker layoutet.

Ofte stillede spørgsmål

Hvordan fungerer flex-shrink?flex-shrink bestemmer, hvor meget et element kan formindskes, når den tilgængelige plads er mindre end flex-basis.

Hvad er standardværdien for flex-shrink?Standardværdien af flex-shrink er 1, hvilket betyder, at alle elementer formindskes ens.

Hvordan sætter jeg flex-shrink for flere elementer?Ved at angive den samme flex-shrink-værdi for alle elementer fordeles formindskningen ensartet.

Kan flex-shrink også bruges i kombination med flex-grow?Ja, flex-shrink, flex-grow og flex-basis kan bruges sammen for at opnå et fleksibelt layout.

Hvad sker der, hvis flex-shrink sættes til 0?Hvis flex-shrink sættes til 0, formindskes de respektive elementer ikke, selvom containeren er mindre end summen af flex-basis.