TaskBuild a label + input grid. .form: display: grid, grid-template-columns: max-content 1fr, gap: 8px 16px. Inside: 3 pairs of <label> + <input>. Labels are 'Email', 'Password', 'Confirm password'.
Intrinsic sizing: min-content, max-content, auto
75 XP6 min
Theory
Sizes based on content, not pixels
CSS Grid offers three "intrinsic" track sizes:
grid-template-columns: min-content 1fr max-content;
- `min-content` β the smallest size where the content doesn't overflow. For text: the width of the LONGEST WORD.
- `max-content` β the size where the content uses no line breaks. For text: the width of the FULL UN-WRAPPED line.
- `auto` β the browser picks something reasonable based on content + available space.
When each is useful
/* Label column sized to its widest label, value column gets the rest */
.form-grid { grid-template-columns: max-content 1fr; }
/* "As narrow as possible" sidebar */
.nav { grid-template-columns: min-content 1fr; }For form-style layouts, max-content 1fr is the perfect "label + input" recipe.
fit-content() β clamp intrinsic sizing
grid-template-columns: fit-content(200px) 1fr;
The first column is sized to its content, but capped at 200px. Above 200px it wraps. Useful for "as wide as content, but not absurd."
π
Sign up to start coding
Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial β card required, cancel anytime.
Sign up β free trial βFirst 10 lessons in each track are free. No card needed for those.