How does the auto-fit vs auto-fill keyword work in repeat()?
Jun 27, 2025 am 01:42 AMThe difference between auto-fit and auto-fill in CSS Grid is that auto-fill creates as many tracks as possible without resizing them, leaving extra space, while auto-fit resizes the tracks to fill the available space. 1. auto-fill maintains consistent track sizes and leaves whitespace if needed. 2. auto-fit adjusts track sizes to eliminate empty space, stretching items to fill the row. Both work best with minmax() for responsive layouts, where auto-fill suits consistent spacing and auto-fit works well for compact, full-width designs like galleries or cards.
When using CSS Grid, the repeat()
function is super handy for creating repeating columns or rows. The real magic happens when you pair it with either auto-fit
or auto-fill
. These keywords help your layout adapt responsively based on available space.
Here’s how they work and when to use each.
What’s the difference between auto-fit
and auto-fill
?
At first glance, both seem similar because they’re used in the same context: inside grid-template-columns
with repeat()
. But their behavior is subtly different:
-
auto-fill
creates as many tracks (columns) as possible without changing the size of the container. -
auto-fit
does the same asauto-fill
, but then it resizes the tracks to fill the available space.
So if you're aiming for a responsive grid that adjusts based on screen size, one might be more suitable than the other depending on your layout goals.
How to use auto-fill
in repeat()
Using auto-fill
means the browser will create as many columns as can fit into the container, based on the size you define. If there's extra space left over, the items won't stretch to fill it — the gaps stay as they are.
Example:
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
This setup tells the browser:
- Each column should be at least 200px wide.
- If the screen gets wider, more columns will appear.
- If the screen shrinks, columns will wrap, keeping a minimum width of 200px.
The key thing: extra space isn’t redistributed — so some whitespace might remain.
Use this when you want consistent spacing and don’t mind empty space on larger screens.
When to choose auto-fit
instead
auto-fit
behaves like auto-fill
, but after placing all the items, it stretches them to fill the entire row.
Back to the example:
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
What changes here?
- Columns still start at 200px.
- But once placed, the browser will expand them to take up all available space.
This gives you a tighter, more compact layout — especially useful for galleries, cards, or anything where full-width usage looks better.
In short: auto-fit
resizes tracks to eliminate empty space.
Practical tips for working with minmax()
and auto-*
If you're going to use either keyword, combining them with minmax()
is a great idea. It gives you control over how flexible those columns are.
A few things to keep in mind:
- You can mix
auto-fit
with fixed sizes, butminmax()
is more flexible. - Using
1fr
allows tracks to grow equally — great for balance. - Try not to set a hard max value unless you have a specific design constraint.
Also, test how your layout behaves with different numbers of items — sometimes auto-fit
can cause unexpected stretching if there aren't enough elements.
And that’s basically it. These two keywords let you build smart, responsive layouts without media queries. Once you get the hang of how they interact with minmax()
and item count, you’ll probably reach for them often.
The above is the detailed content of How does the auto-fit vs auto-fill keyword work in repeat()?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

CSS blocks page rendering because browsers view inline and external CSS as key resources by default, especially with imported stylesheets, header large amounts of inline CSS, and unoptimized media query styles. 1. Extract critical CSS and embed it into HTML; 2. Delay loading non-critical CSS through JavaScript; 3. Use media attributes to optimize loading such as print styles; 4. Compress and merge CSS to reduce requests. It is recommended to use tools to extract key CSS, combine rel="preload" asynchronous loading, and use media delayed loading reasonably to avoid excessive splitting and complex script control.

In the following tutorial, I will show you how to create Lottie animations in Figma. We'll use two colorful designs to exmplify how you can animate in Figma, and then I'll show you how to go from Figma to Lottie animations. All you need is a free Fig

We put it to the test and it turns out Sass can replace JavaScript, at least when it comes to low-level logic and puzzle behavior. With nothing but maps, mixins, functions, and a whole lot of math, we managed to bring our Tangram puzzle to life, no J

ThebestapproachforCSSdependsontheproject'sspecificneeds.Forlargerprojects,externalCSSisbetterduetomaintainabilityandreusability;forsmallerprojectsorsingle-pageapplications,internalCSSmightbemoresuitable.It'scrucialtobalanceprojectsize,performanceneed

No,CSSdoesnothavetobeinlowercase.However,usinglowercaseisrecommendedfor:1)Consistencyandreadability,2)Avoidingerrorsinrelatedtechnologies,3)Potentialperformancebenefits,and4)Improvedcollaborationwithinteams.

CSSismostlycase-insensitive,butURLsandfontfamilynamesarecase-sensitive.1)Propertiesandvalueslikecolor:red;arenotcase-sensitive.2)URLsmustmatchtheserver'scase,e.g.,/images/Logo.png.3)Fontfamilynameslike'OpenSans'mustbeexact.

Autoprefixer is a tool that automatically adds vendor prefixes to CSS attributes based on the target browser scope. 1. It solves the problem of manually maintaining prefixes with errors; 2. Work through the PostCSS plug-in form, parse CSS, analyze attributes that need to be prefixed, and generate code according to configuration; 3. The usage steps include installing plug-ins, setting browserslist, and enabling them in the build process; 4. Notes include not manually adding prefixes, keeping configuration updates, prefixes not all attributes, and it is recommended to use them with the preprocessor.

CSScounterscanautomaticallynumbersectionsandlists.1)Usecounter-resettoinitialize,counter-incrementtoincrease,andcounter()orcounters()todisplayvalues.2)CombinewithJavaScriptfordynamiccontenttoensureaccurateupdates.
