v145 · CSS · Multi-column Layout
Column wrapping for multicol
Chrome 145 adds the column-wrap and column-height CSS properties from the CSS Multi-column Layout Level 2 spec. column-wrap controls whether columns overflow their container or wrap to a new row (like flex rows), and column-height sets an explicit height cap per column — enabling true 2D column layout without JavaScript.
concepts
-
Column Wrap Demo
Compare
column-wrap: nowrap(columns extend past the container, requiring a scroll) versuscolumn-wrap: wrap(columns wrap to a new row, like flex-wrap on a multi-column container). -
Height-Constrained Columns
Use
column-heightto cap each column at a fixed pixel height. When content overflows a column it wraps to the next column row — ideal for card grids, newpaper layouts, and magazine-style designs. -
Balance Playground
Drive
column-wrap,column-fill,column-count, andcolumn-heighttogether on the same paragraph. Shows which combinations create new column rows and which extend the block. -
News Layout
A newspaper-style article rendered with live
column-wrapandcolumn-heightcontrols. Toggle wrap mode, change column count, and adjust the height cap — watch the article reflow into multiple column rows in real time. -
Dashboard Cards
A data dashboard card grid built with
column-wrap+column-heightinstead of CSS Grid. Adjust the column count and height cap — when cards overflow a column they automatically flow to a new row, with a Grid-vs-multicol comparison.
why it shipped
CSS multi-column layout (Chrome 2+) creates newspaper-style columns in a single column block. But the existing model had no way to control what happens when the total column count exceeds what fits in the container: columns just overflowed invisibly. Authors who wanted columns to wrap onto a new row had to reach for Flexbox or Grid and manually calculate gutters. The Level 2 additions — column-wrap and column-height — bring flexbox-style wrapping to multicol: you can now say "make columns no taller than 400px, and wrap them to a new row when there are too many to fit", creating flowing 2D column grids without JavaScript measurement.
the new properties
/* column-wrap: like flex-wrap for multi-column containers */
.container {
columns: 3;
column-wrap: nowrap; /* default — columns overflow if too many */
column-wrap: wrap; /* columns wrap to a new row */
}
/* column-height: cap each column at a height */
.container {
columns: 3;
column-height: 300px; /* each column is at most 300px tall */
column-wrap: wrap; /* wrap when columns fill up */
}
/* Together: newspaper / magazine grid */
.magazine {
column-count: 4;
column-height: 400px;
column-wrap: wrap;
column-gap: 1.5rem;
}