Få boksene til at stå på række ved at ændre .container
til en flex-container.
Hints
-
display
-
gap
-
flex

Bliv fortrolig med CSS Grid, Flexbox og Subgrid gennem praktiske, interaktive opgaver.
Her kan du øve dine færdigheder i CSS Grid, Flexbox og Subgrid gennem praktiske, interaktive opgaver. Øvelserne dækker både de grundlæggende og de mere avancerede teknikker inden for moderne layout-metoder.
Du får mulighed for at arbejde med alt fra simple grid- og flex-strukturer til mere komplekse features som placering, auto-fit, navngivning af grid-linjer og Subgrid-nedarvning. Undervejs får du også indblik i, hvornår de forskellige teknikker er bedst at bruge, og hvordan de kan kombineres for at skabe fleksible, responsive layouts på tværs af flere niveauer.
Formålet er, at du gennem hands-on erfaring opnår en intuitiv forståelse af, hvordan man bygger moderne CSS-layouts. Du vælger selv, om du vil dykke ned i Grid, Flexbox, Subgrid – eller dem alle!
.container
og de enkelte bokse.
Tip: Du kan bruge genveje som df eller dg, hvis
du hurtigt vil skrive hhv. display: flex;
og display: grid;
. Du kan også klikke direkte på kode-eksemplerne i hints og i
opgavebeskrivelserne, for at indsætte dem i tekstfeltet.
Få boksene til at stå på række ved at ændre .container
til en flex-container.
display
gap
flex
Få boksene til at stå på række, og fordel den overskydende plads i containren jævnt mellem dem med justify-content
space-between
.
Prøv derefter at ændre værdien til hhv. space-evenly
, space-around
, center
og flex-end
og bemærk, hvordan den ledige plads fordeles forskelligt.
justify-content
space-between
space-evenly
center
flex-end
Adskil .logo
fra de resterende bokse vha. auto-margin. Brug margin-right
eller margin-inline-end
med værdien auto
for at bruge den overskydende plads i containeren til at skubbe de øvrige bokse mod højre.
Brug align-items
center
til at centrere boksene på containerens vertikale akse, så højden begrænses til boksenes reelle højde. Tilføj gap
, for at garantere en minumumsafstand mellem boksene.
margin-right/margin-inline-end
align-items
auto
Brug den overskydende plads i containeren til at skubbe de to bokse fra hinanden, ændr retningen (column
) i containeren, så boksene placeres fra top mod bund vha. flex-direction
.
Brug enten auto-margin på én af boksene eller justify-content
på containeren for at placere boksene i top og bund.
flex-direction
column
Brug den overskydende plads i containeren til at skubbe de to bokse fra hinanden, ændr retningen (column-reverse
) i containeren, så boksene placeres fra bund mod top vha. flex-direction
. Læg mærke til rækkefølgen på boksene.
Brug enten auto-margin på én af boksene eller justify-content
på containeren for at placere boksene i top og bund.
flex-direction
column-reverse
Brug flex-grow
på .box-1
for at få den til at optage den overskydende plads i containeren. Den anden boks bliver således skubbet ned i bunden af containeren. Ændr retningen i containeren, så boksene placeres fra top mod bund.
Træk vinduet større vha. for at se, hvordan .box-1
altid optager den overskydende plads i containeren.
Tilføj derefter flere bokse, for at se, hvordan den overskydende plads i containeren skrumper ind, som forårsager .box-1
til at blive mindre.
flex-grow
Brug align-self
til at placere .box-1
og .box-3
i containeren. Lad .box-2
optage den resterende plads i containeren, så den skubber de øvrige bokse så små som muligt.
Træk i vinduet vha. for at se, hvordan boksene opfører sig i forskellige størrelser.
flex-grow
align-self
flex-start
flex-end
Få hvert ord til at rykke ned på en ny række, hvis der ikke er plads nok på den nuværende, ved at sætte flex-wrap
til wrap
på .container
en.
Tilføj noget afstand mellem ordene ved at sætte gap
til .5rem
.
flex-wrap
wrap
Få boksene til at rykke ned på en ny række, hvis der ikke er plads nok ved at sætte flex-wrap
til wrap
på .container
en. Indstil derefter hver boks til minimum at fylde 30 % af containerens bredde vha. flex: 30%;
. Dette sørger samtidigt for, at alle boksene udnytter hele den tilgængelige plads i containeren.
flex
er en forkortelse for flex-grow
, flex-shrink
og flex-basis
. Mens flex-grow: 1;
udnytter ekstra plads i containeren ligeligt, fastsætter flex-basis
boksenes ideelle bredde, og flex-shrink: 1;
gør det muligt for boksene at skrumpe mindre end deres flex-basis
værdi.
Bemærk, flex: 30%;
er det samme som at skrive flex-grow: 1;
, flex-shrink: 1;
og flex-basis: 30%;
.
flex-wrap
flex
wrap
Lav en flex-container, der wrapper indholdet, når der ikke er plads (inkl. lidt gap).
Brug derefter flex
shortands til hhv. at få .box-1
til kun være så bred som dens indhold vha. værdien none
, mens .box-2
skal fylde 300px
plus containerens eventuelle overskydende plads.
Træk i vinduet vha. for at se, hvordan boksene opfører sig i forskellige størrelser.
flex-wrap
flex
wrap
none
Indstil boksene til hhv. at fylde 300px
(.box-1
) og 100px
(.box-2
) plus containerens eventuelle overskydende plads vha. flex
.
Sæt derefter flex-wrap
til wrap-reverse
på .container
en for at få boksene til at wrappe i omvendt rækkefølge.
flex
flex-wrap
wrap-reverse
Lav .container
en til en flex-container og sørg for at hver box fylder 65% af containerens bredde ved at indstille flex-basis: 65%
på .box
. Sørg også for, at alle boksene ikke kan skrumpe ved at sætte flex-shrink
til 0
.
Tilføj noget afstand mellem boksene ved at sætte gap
til .5rem
.
flex-shrink
flex-basis