Flexbox er et kraftfuldt layoutmodul i CSS, der giver dig mulighed for at oprette fleksible og responsive layouts. I denne vejledning fokuserer vi på flex-basis-egenskaben, som er ansvarlig for at definere et elements base størrelse i Flex-retningen. Det er essentielt at angive børneelementernes størrelse uafhængigt af de konkrete dimensioner på Flex-containeren. Ved korrekt brug af flex-basis kan du markant forenkle og optimere layoutdesignet.
Vigtigste erkendelser
- flex-basis fastlægger en elements startstørrelse i Flex-containerrichtningen.
- Standardværdien for flex-basis er 0%, hvilket betyder, at elementet kun optager den plads, som indholdet kræver.
- Med flex-grow og flex-shrink kan elementet tilpasse sin størrelse afhængigt af den tilgængelige plads.
- Flex-retningen påvirker fortolkningen af basestørrelsen.
Trin-for-trin vejledning
Først ser vi på, hvordan flex-basis fungerer i et Flex-layout. Begynd med et simpelt eksempel. Sørg for, at du har oprettet en Flex-container med elementer.
Definer først din Flex-container. I vores eksempel har vi angivet display: flex og flex-direction: row på vores container. Dette gør det muligt for børneelementerne at blive vandret placeret ved siden af hinanden.
Næste skridt er at vælge et element inden i containeren og anvende flex-egenskaben. Her bruger vi flex: 1, hvilket er en kombination af flex-grow, flex-shrink og flex-basis. Lad os se nærmere på de enkelte komponenter.
Med flex: 1 vil elementet tage en fleksibel størrelse, hvor base standardstørrelsen er sat til 0%. Det betyder, at det kun optager plads, som indholdet kræver.
Lad os nu se nærmere på flex-basis-egenskaben. Du kan angive den direkte ved for eksempel at begynde at ændre den fra flex til flex-basis: 100px. Dette sætter elementets startbredde til 100 pixels.
Gem dine ændringer, og du vil se, at hovedelementet nu er 100 pixels bredt. Disse 100 pixels er basebredden, som layoutet i browseren udgår fra.
Dette betyder, at elementet kan fylde mere plads, hvis det har mere plads til rådighed gennem flex-grow, eller mindre, hvis flex-shrink aktiveres.
Alternativt kan du også angive procentværdier. Ændr værdien til flex-basis: 100%, hvilket betyder, at elementet skal optage al den tilgængelige plads i containeren.
Hvis du nu sætter flex-basis til 0, vil du se, at elementet kollapser til bredden, som er dikteret af indholdet. Det er vigtigt at bemærke, at 0 ikke betyder, at elementet ikke har en bredde, det er bare baseret på det minimale indhold.
En ofte anvendt værdi for flex-basis er auto. Når du angiver denne værdi, bliver layoutet meget fleksibelt, da bredden varierer afhængigt af indholdet. Kontroller dette ved at indstille bredden eksplicit, f.eks. til 200px, og se, hvordan elementet optager 200 pixels.
Du kan også ændre Flex-retningen. Sæt flex-direction til column. Dette ændrer måden, hvorpå basestørrelsen fortolkes – nu gælder basestørrelsen vertikalt.
Hvis du ændrer flex-basis nu, skal du i stedet justere elementets højde. Når du sætter flex-basis til 100 pixels, vil elementet være 100 pixels højt, og du har fleksibilitet til at skaleret afhængigt af indholdet.
Det er vigtigt at forstå dette, for mens bredde og højde er statiske, ændrer flex-basis sig i overensstemmelse med flex-retningen. Det gør Flexbox langt mere fleksibelt i forhold til traditionelle layoutmetoder.
Desuden vil betydningen af flex-grow og flex-shrink i forbindelse med flex-basis blive forklaret som det næste skridt. Disse værdier definerer, hvor meget plads elementet optager i beholderen, afhængigt af dets størrelse og de tilgængelige ressourcer.
Oversigt
I denne vejledning har du lært grundlæggende om flex-basis-property. Du ved nu, hvordan du ved hjælp af denne property definerer et elements basisstørrelse, og hvordan flex-direction påvirker layoutvisningen. Med denne viden er du klar til at oprette avancerede Flexbox-layouts, der fleksibelt tilpasser sig forskellige skærmstørrelser og -indhold.
Ofte stillede spørgsmål
Hvad er flex-basis?Flex-basis definerer startstørrelsen på et flekselement langs hovedaksen.
Hvordan fungerer flex-grow?Flex-grow bestemmer, hvor meget plads et element optager i forhold til andre flekselementer, når der er plads til rådighed.
Hvad sker der, når jeg sætter flex-basis til nul?Hvis du sætter flex-basis til nul, reduceres elementets bredde til minimal indholds-bredde.
Kan jeg også bruge en procentdel for flex-basis?Ja, du kan angive flex-basis i procent for at definere den plads, som elementet skal fylde i forhold til beholderen.
Hvordan påvirker flex-direction flex-basis?Flex-direction bestemmer, hvordan flex-basis fortolkes, enten med hensyn til elementets bredde eller højde.