Przejdź do treści

CSS Grid — liczba kolumn (auto-fill/minmax)

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

Odpowiedź: 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.

Wzór

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

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

Symbole i jednostki we wzorze
SymbolZnaczenieJednostka
container_bredde_pxContainerens breddepx
min_element_bredde_pxMinimumsbredde pr. elementpx
mellemrum_pxMellemrum mellem elementer (gap)px
=Antal kolonnerkolonner
=Elementernes faktiske breddepx

Ważność i źródło

Źródło
Geometri / CSS Grid Layout-teknik (auto-fill + minmax, W3C-specifikation)

Nie dotyczy, gdy

  • 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.

Przykład obliczeniowy

Wstawiono domyślne wartości kalkulatora. Liczby obliczono dokładnie tym wzorem, którego używa narzędzie.

Wstawiono

  • Containerens bredde1200 px
  • Minimumsbredde pr. element280 px
  • Mellemrum mellem elementer (gap)24 px

Dawca

  • Antal kolonner4 kolonner
  • Elementernes faktiske bredde282 px

Sam kalkulator jest zablokowane

Utwórz bezpłatne konto, aby odblokować wszystkie artykuły, kalkulatory, szablony i asortyment — i uzyskać dostęp do quizów i klas. Zajmuje to poniżej minuty: imię, email i hasło. Żadna karta kredytowa.

Chcesz najpierw czegoś spróbować? Zobacz, czego możesz używać bez konta — strefa junior, leksykon, filmy i więcej.

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.

Krok za krokiem

  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.

Typowe błędy

  • 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.

Przykłady z codzienności

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
1200 px
Minimumsbredde pr. element
280 px
Mellemrum mellem elementer (gap)
24 px

To znaczy: Det bliver til 4 kolumn, 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

To znaczy: 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
1440 px
Minimumsbredde pr. element
220 px
Mellemrum mellem elementer (gap)
20 px

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

Reguła praktyczna

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

Jak sprawdzić odpowiedź

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