Skip to content

CSS Grid — number of columns (auto-fill/minmax)

Hvor mange kolonner får jeg automatisk, og hvor brede bliver de så reelt?

Answer: Den udbredte responsive grid-teknik 'grid-template-columns: repeat(auto-fill, minmax(X, 1fr))' fylder rækken med så mange kolonner, som kan være der, uden at noget element bliver smallere end den angivne minimumsbredde. Beregneren viser, hvor mange kolonner det reelt bliver til ved en given container-bredde, minimumsbredde og mellemrum (gap), samt elementernes faktiske bredde, når pladsen fordeles ligeligt.

Formula

antal kolonner = ⌊(container-bredde + gap) ÷ (min-elementbredde + gap)⌋

elementbredde = (container-bredde − (antal kolonner − 1) × gap) ÷ antal kolonner

Symbols and units in the formula
SymbolMeaningUnit
container_bredde_pxContainerens breddepx
min_element_bredde_pxMinimumsbredde pr. elementpx
mellemrum_pxMellemrum mellem elementer (gap)px
=Antal kolonnerkolonner
=Elementernes faktiske breddepx

Validity and source

Source
Geometri / CSS Grid Layout-teknik (auto-fill + minmax, W3C-specifikation)

Does not apply when

  • Modellen forudsætter, at grid'et bruger 'repeat(auto-fill, minmax(min, 1fr))' — andre grid-strategier (fx faste kolonneantal eller auto-fit) opfører sig lidt anderledes ved tomme kolonner.

Worked example

The calculator's own default values inserted. The figures are calculated with exactly the formula the tool uses.

Substituted

  • Containerens bredde1,200 px
  • Minimumsbredde pr. element280 px
  • Mellemrum mellem elementer (gap)24 px

Giver

  • Antal kolonner4 kolonner
  • Elementernes faktiske bredde282 px

The calculator itself is locked

Create a free user account to unlock all articles, calculators, templates and range — and get access to quizzes and classes. It takes less than a minute: name, email and a password. No payment card.

Want to try something first? See what you can use without an account — the junior zone, the encyclopedia, the videos and more.

Sådan bruger du den

Med grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) laver browseren selv kolonnerne. Beregneren viser, hvor mange kolonner der bliver og hvor brede kortene ender, så du kan vælge minimumsbredde og gap, der passer til designet ved de vigtige skærmbredder.

Step by step

  1. Find containerens indvendige bredde ved den skærmbredde, du tester (uden padding).
  2. Læg gap til både containerens bredde og minimumsbredden.
  3. Del og rund ned. Det er antal kolonner.
  4. Træk gap'ene fra containerbredden, og del med antal kolonner. Det er kortenes faktiske bredde.

Typical errors

  • At glemme gap'et. 4 × 280 = 1120 passer i 1200, men med 3 gap på 24 px bliver det 1192, og der er kun plads lige akkurat.
  • At regne med containerens ydre bredde inkl. padding.
  • At forveksle auto-fill og auto-fit. Med få kort strækker auto-fit dem ud over hele rækken, mens auto-fill beholder tomme kolonner.

Examples from everyday life

Produktkort på desktop

En webshop har en container på 1200 px, kortene skal være mindst 280 px, og gap er 24 px.

Containerens bredde
1,200 px
Minimumsbredde pr. element
280 px
Mellemrum mellem elementer (gap)
24 px

It means: Det bliver til 4 columns, hver 282 px brede. Vil kunden have fem på en række, skal minimumsbredden ned under ca. 221 px.

Samme grid på en telefon

På en iPhone er containeren 343 px (390 px minus 2 × 16 px padding), og gap er 16 px.

Containerens bredde
343 px
Minimumsbredde pr. element
280 px
Mellemrum mellem elementer (gap)
16 px

It means: Kortet fylder 343 px, altså hele bredden, for der er kun plads til én kolonne. Det er det ønskede på mobil, uden en eneste media query.

Bredt galleri

Et fotogalleri står i en container på 1440 px med minimum 220 px og gap 20 px.

Containerens bredde
1,440 px
Minimumsbredde pr. element
220 px
Mellemrum mellem elementer (gap)
20 px

It means: Galleriet får 6 columns, hver 223 px brede. Det er tæt på minimum, så billederne bliver ikke beskåret meget.

Rule of thumb

Antal kolonner ≈ containerbredde ÷ (minimum + gap), rundet ned.

How to check the answer

Antal kolonner × kortbredde + (antal − 1) × gap skal give containerens bredde.