The column-gap property sets the size of the gutter between an element's columns. It works in multi-column layout, CSS Grid, and Flexbox. Negative values are invalid.
The initial value is normal: about 1em in multi-column layout, and 0 in Grid and Flexbox. Pair it with column-count or columns for newspaper-style text, or use it on a grid/flex container for track spacing. The gap shorthand can set row-gap and column-gap together.
Standard-track.
Not deprecated and not experimental. Older grid-column-gap is now an alias—prefer column-gap or gap in new code.
Use a non-negative length (px, em, rem) or a percentage of the container's inline size. Some newer engines also accept thin, medium, and thick; stick to lengths for widest support.
Set column-gap to a length, percentage, or leave normal.
Optional: add column-rule to draw a line in the middle of the gutter (it does not change the gap size).
For both row and column gutters in Grid/Flex, prefer the gap shorthand.
Piece
Required?
Role
Multicol / Grid / Flex
Yes
Without columns or tracks, there is no gutter to size
column-gap
Optional
Defaults to normal if omitted
column-rule
Optional
Visible divider centered in the gap
Try it
Live Preview
Three columns of the same text. Change only the gap. A thin rule marks the center of each gutter.
In multi-column layout, normal is roughly 1em. Percentages use the container width.
Result
London. Michaelmas term lately over, and the Lord Chancellor sitting in Lincoln's Inn Hall. Implacable November weather. As much mud in the streets as if the waters had but newly retired from the face of the earth.
column-gap: 20px
Code
CSS Examples
Each snippet keeps only what column-gap needs. Use Try It Yourself for a live editor.
Example 1 — Length Gap (20px)
Add a fixed gutter between three text columns.
CSS
<style>
p {
column-count: 3;
column-gap: 20px;
}
</style>
<p>
London. Michaelmas term lately over…
</p>
London. Michaelmas term lately over, and the Lord Chancellor sitting in Lincoln's Inn Hall. Implacable November weather. As much mud in the streets as if the waters had but newly retired from the face of the earth.
How It Works
Create columns.column-count: 3 turns the paragraph into a multicol box.
Set the gutter.column-gap: 20px puts 20 pixels between each column.
Text still flows. Content fills columns as usual; only the space between them changed.
Try other lengths.1em or 2rem scale with font size instead of a fixed pixel value.
Example 2 — normal (Default)
Rely on the browser default gutter for multi-column text.
CSS
<style>
p {
column-count: 3;
column-gap: normal;
}
</style>
<p>
London. Michaelmas term lately over…
</p>
London. Michaelmas term lately over, and the Lord Chancellor sitting in Lincoln's Inn Hall. Implacable November weather. As much mud in the streets as if the waters had but newly retired from the face of the earth.
How It Works
Use the keyword.column-gap: normal is the initial value.
Multicol meaning. In multi-column layout, normal resolves to about 1em.
Grid/Flex meaning. On Grid and Flexbox, normal means no extra column gap (0).
Omit if you want. Leaving column-gap out has the same effect as writing normal.
Example 3 — Gap Between Grid Columns
The same property spaces columns in a CSS Grid container.
Bottom line: Safe for multi-column layouts in modern browsers. For Flexbox gaps, require Chrome 84+, Firefox 63+, Safari 14.1+, Edge 84+.
Remember
Key Takeaways
Role: sizes the gutter between columns (multicol, Grid, Flex).
Default:normal (~1em in multicol; 0 in Grid/Flex).
Pair:column-rule draws in the gap; gap sets row + column together.
Alias: prefer column-gap over legacy grid-column-gap.
One line:column-gap controls the space between columns; use a length or percentage, or leave normal for the layout’s default gutter.
Frequently Asked Questions
column-gap sets the size of the gutter between columns in multi-column layout, and between columns in CSS Grid and Flexbox. Negative values are invalid.
The initial value is normal. In multi-column layout that computes to about 1em. In Grid and Flexbox, normal means no extra column gap (0).
column-gap sets only the column (inline-axis) gutter. The gap shorthand sets row-gap and column-gap together. Use gap when you want both; use column-gap when only columns need spacing.
No. column-rule draws a line in the middle of the gap. The rule's width does not add to or shrink column-gap.
grid-column-gap is now an alias for column-gap. Prefer column-gap (or gap) in new code.
Multi-column support is in Chrome 50+, Firefox 52+, Safari 9+, and Edge 12+. Grid and Flexbox contexts arrived later. It is a browser layout property, not a Node.js feature.