CSS columns Property
Description
The columns shorthand property controls multi-column flow within a block-level element, allowing content to be laid out across multiple vertical columns rather than a single continuous block. It is functionally a convenience for setting the two main underlying controls - column-width and column-count - in one declaration, and it determines how and when inline content is fragmented into separate column boxes. Conceptually, using this shorthand tells the browser how to split the element’s content into a series of column boxes and whether to prioritize a specific count of columns or a target width for each column.
When a block is split into columns, the user-agent creates independent column regions that manage fragmenting text, inline content, and inline-level boxes. The way content is balanced or filled across those columns is affected by column balancing behavior - which is controlled separately by column-fill - and by the available height of the containing block. Elements that establish their own fragmentation rules (for example, elements with explicit break controls) interact with the column flow, which can result in content being forced to the next column or preserved together. Note that floats and positioned elements inside the multi-column container are constrained by the column box they occur in, so their layout and stacking may feel different compared with a single-column context.
The visual separation and spacing between the generated column boxes are independent concerns that sit alongside the shorthand: the gap between columns is managed by column-gap, while any visible separators (rules) are handled by column-rule. Authors can also influence whether individual elements are allowed to be split across columns using break control properties such as break-inside, which is important for preserving the integrity of things like images, figures, or grouped content. In practice, the columns shorthand simplifies declaring multi-column intentions, while the related properties let you tune the fragmentation behavior, spacing, and visual presentation to match the desired reading experience.
Definition
- Initial value
- See individual properties
- Applies to
- Block level elements
- Inherited
- No
- Computed value
- See individual properties
- Animatable
- No
- JavaScript syntax
- object.style.columns
Interactive Demo
Syntax
columns: <column-width> || <column-count>
Values
- <column-width>See column-width CSS property for values.
- <column-count>See column-count CSS property for values.
Example
Browser Support
The following information will show you the current browser support for the CSS columns property. Hover over a browser icon to see the version that first introduced support for this CSS property.
This property is supported by all modern browsers.
Desktop
Tablets & Mobile
Last updated by CSSPortal on: 1st January 2026
