Simpelt grid 1 / 17

Lav et grid med tre kolonner, som er lige brede vha. grid-template-columns og fr-enheder. Tilføj lidt mellemrum vha. gap: 10px.

Hints
  • display
  • grid-template-columns
  • gap
  • grid
  • 1fr
Har du brug for hjælp? Lær mere om fr unit
.box-1
.box-2
.box-3
.box-4
.box-5
.box-6
.box-7
.box-8
.box-9

Fleksibelt grid 2 / 17

Lav tre kolonner, hvor den midterste ikke må fylde mere end dens tekstindhold vha. auto (se reference). De to øvrige kolonner skal dele resten af den overskydende plads.

Hints
  • grid-template-columns
  • 1fr
  • auto
Har du brug for hjælp? Lær mere om auto
.box-1
.box-2
.box-3
.box-4
.box-5
.box-6
.box-7
.box-8
.box-9

Placér boks i grid 3 / 17

Lav tre lige brede kolonner, samt fire rækker, som hver er 50px (brug grid-auto-rows). .box-2 skal spænde over to rækker og to kolonner og begynde på række 2 i kolonne 2.

Hints
  • grid-auto-rows
  • grid-column
  • grid-row
  • span <n>
Har du brug for hjælp? Lær mere om grid-column og span
.box-1
.box-2
.box-3
.box-4
.box-5
.box-6
.box-7
.box-8
.box-9

Flag med grid 4 / 17

Giv .container en højde på 250px vha. height. Definér derefter to kolonner af 1fr 1.5fr og brug gap til at indstille mellemrum mellem boksene. Tilføj derefter tre bokse, og se hvordan boksene former et flag.

Hints
  • height
  • gap
Har du brug for hjælp? Lær mere om gap
.box-1

Mosaik-grid 5 / 17

Lav fire lige brede kolonner som hver fylder lige meget (1fr) vha. repeat()-funktionen. Lad .box-1 spænde over 2 rækker og 2 kolonner, og lad .box-4 spænde over 2 rækker. Du kan evt. tilføje gap, for at lave mellemrum mellem boksene.

Tilføj derefter et par bokse for at se, hvordan disse lægger sig i grid’et. Træk i vinduet med dine bokse (nederst i højre hjørne ) for at se, hvordan boksene opfører sig i forskellige størrelser.

Hints
  • grid-column
  • grid-row
  • gap
  • repeat(<n>, <x>)
Har du brug for hjælp? Lær mere om repeat()
.box-1
.box-2
.box-3
.box-4
.box-5
.box-6
.box-7
.box-8

Overlap bokse 6 / 17

Lav fire lige brede kolonner samt fire rækker af 50px (brug grid-auto-rows). Hver boks skal spænde over to rækker og to kolonner og skal overlappe hinanden (se reference). Placér boksene vha. linjenumrene i dit grid; fx 1 / 3.

Tilføj derefter seks bokse for at se, hvordan disse lægger sig i grid’et. Du kan evt. indstille gap til 10px, for at lave mellemrum mellem boksene.

Hints
  • grid-column
  • grid-row
  • gap
Har du brug for hjælp? Lær mere om overlapning
.box-1
.box-2
.box-3

Flydende layout 7 / 17

Lav tre kolonner, hvor den første og sidste kolonne optager lige meget plads vha. 1fr. Angiv en rækkevidde mellem 0 (min) og 300px (max) via funktionen minmax() til den midterste kolonne. .box-1 skal begynde på kolonne-linje 1 og slutte på kolonne-linje 4, og .box-2 skal begynde på kolonne-linje 2 og slutte på kolonne-linje 3.

Træk i vinduet med dine bokse (nederst i højre hjørne ) for at se, hvordan grid’et opfører sig i forskellige størrelser. .box-2 skal forblive 300px i bredden, indtil der ikke er mere plads, hvorefter den skal følge forælder-containerens bredde (se reference).

Hints
  • grid-template-columns
  • minmax(<min>, <max>)
Har du brug for hjælp? Lær mere om minmax()
.box-1
.box-2

Centrér boks i container 8 / 17

Gør .container til en grid-container, og brug derefter place-content til at placere .box-1 i midten containeren.

Placér derefter .box-1 forskellige steder i containeren vha. start, end og stretch.

place-content kan håndtere to værdier.

Hints
  • place-content
  • center
Har du brug for hjælp? Lær mere om place-content
.box-1

Placér boksen 9 / 17

Gør .container til en grid-container og lav to kolonner, der er lige brede. Brug derefter place-self til at placere .box-2 hhv. i midten på den vertikale akse og i starten af den horisontale akse.

place-self kan håndtere to værdier (den vertikale akse og den horisontale akse).

Hints
  • place-self
  • center
  • start
Har du brug for hjælp? Lær mere om place-self
.box-1
.box-2

Placér bokse i grid-celle 10 / 17

Gør .container til en grid-container, og lad alle bokse dække samme grid-celle ved at sætte grid-column og grid-row til 1.box. Brug derefter place-self til at placere boksene i hvert hjørne af containeren. Begynd med .box-5.

place-self kan håndtere to værdier.

Hints
  • place-self
  • center
  • start
  • end
Har du brug for hjælp? Lær mere om stacking
.box-1
.box-2
.box-3
.box-4
.box-5

Placér bokse 11 / 17

Definér et grid med tre kolonner og tre rækker (grid-template-rows). Den midterste kolonne-celle skal være tre gange så stor som de to øvrige vha. 3fr. Første og sidste række skal optage lige meget plads vha. 1fr, hvorimod den midterste række skal være auto. Tilføj derefter gap: 10px.

Lad img spænde over alle rækker og kolonner, og placér efterfølgende .box-1, så den ligger i midsterste grid-celle. De to øvrige bokse skal ligge i hhv. første og sidste række og være placeret, så de ligger sig tæt op af .box-1 (se reference).

Hints
  • grid-template-rows
  • place-self
Har du brug for hjælp? Lær mere om stretch
.box-1
.box-2
.box-3

Header, Main og Footer 12 / 17

Definér et grid med tre rækker, der repræsenterer hhv. en <header>, <main> og <footer>.

main skal have en fleksibel højde, så den kan vokse med indholdet, og højden på header og footer skal defineres af indholdet vha. min-content.

Træk derefter i vinduet med dine bokse (nederst i højre hjørne ) for at se, hvordan header og footer altid er placeret hhv. øverst og nederst i grid’et.

(NB! I et rigtigt projekt, kræver effekten at body-elementet har en minimumshøjde på 100% af viewporten, fx min-height: 100svh).

Hints
  • grid-template-rows
  • min-content
Har du brug for hjælp? Lær mere om min-content
Header
Main
Footer

Fyld kolonnerne først 13 / 17

Definér et grid med tre rækker og lad .box-1 spænde over alle tre. Brug derefter grid-auto-flow til at generere yderligere to kolonner med de resterende bokse.

Hints
  • grid-auto-flow
Har du brug for hjælp? Lær mere om grid-auto-flow
.box-1
.box-2
.box-3
.box-4
.box-5
.box-6
.box-7

Centreret indhold 14 / 17

Definér et grid med to kolonner, og sørg for, at alle bokse (.box) strækker sig over to rækker. .box-1 skal starte på række-linje 2 i grid’et.

Fordi vi ønsker at lade .box-1 starte på en bestemt position uden at ændre de andre bokses startpunkter, bruger vi grid-row-end: span 2. Dette sikrer, at hver boks strækker sig over to rækker fra sin naturlige startposition, mens .box-1 specifikt placeres i anden række ved hjælp af grid-row-start.

Husk også at sætte aspect-ratio til 3/2.

Når vinduet justeres i højden, skal indholdet altid være centreret i containeren ved hjælp af align-content.

Hints
  • grid-row-start
  • grid-row-end
  • align-content
  • span 2
Har du brug for hjælp? Lær mere om align-content
.box-1
.box-2
.box-3

Auto-fit / Auto-fill 15 / 17

Få boksene til at definere, hvor mange kolonner der skal være i containeren, ved at bruge repeat() og auto-fit eller auto-fill. Brug minmax() til at definere en minimums- og maksimumsbredde på boksene, hhv. 80px og 1fr, hvilket vil resultere i lige så mange “tracks” som der kan være i containeren med en minimumsstørrelse på 80px.

Med auto-fit og auto-fill kan man styre, hvordan den overskydende plads skal allokeres i en grid-container. Hvis man bruger auto-fit vil boksene udvides, så de fylder hele containeren. Hvis man bruger auto-fill vil containeren allokere det overskydende rum i form af tomme “tracks”, som ikke indeholder bokse.

Hints
  • repeat()
  • minmax()
  • auto-fit
  • auto-fill
Har du brug for hjælp? Lær mere om auto-fit/-fill
.box-1
.box-2
.box-3
.box-4

Navngiv Grid-linjer 16 / 17

Tilføj linjenavne til grid-kolonnerne, så elementerne placeres korrekt.

Brug linjenavnene [a-start] og [a-end], [b-start] og [b-end] samt [c-start] og [c-end] til at angive, hvor hver kolonne begynder og slutter ved at placere dem før og efter de relevante kolonner. Bemærk, at når du tilføjer -start og -end til linjenavne, bliver der automatisk oprettet et navngivet område baseret på det navn, du har valgt.

Se referencen ift., hvordan linjenavnene skal placeres for at opnå den ønskede placering af boksene i grid’et.

Hints
  • [a-start] 2fr
  • 2fr [a-end]
Har du brug for hjælp? Lær mere om linjenavne
.box-1
.box-2
.box-3
.box-4
.box-5

Bento-grid 17 / 17

Tilføj grid-template-areas til grid’et, så elementerne placeres korrekt.

Brug navnene a, b, c, d og e til at angive, hvor hvert område skal være i grid’et. Nogle af områderne skal strække sig over flere kolonner, så husk at gentage det samme områdenavn, hvor det er nødvendigt.

Se referencen ift., hvordan områderne skal placeres for at opnå det ønskede layout af boksene i grid’et.

Hints
  • grid-template-areas
  • "a a b b" "c d d d"
Har du brug for hjælp? Lær mere om template-areas
.box-1
.box-2
.box-3
.box-4
.box-5