The CSS multi-column layout module lets you divide content across multiple columns. By using the properties in this module, you can define the preferred number and width of columns, the gap size between columns, and the visual appearance of the optional column dividing lines (known as column rules). You can also define how content should flow from column to column and how to break content between columns.
In this example, the 1967 speech from Canada's centennial, A Lament for Confederation, by Chief Dan George, is displayed across multiple columns, similar to the way articles are displayed in printed newspapers. If you have JavaScript enabled, controls enable changing the preferred column number and width, the width of the gap between columns, whether the title and a sample blockquote should be contained in a single column or made to span all columns, and whether breaking within the paragraphs should be avoided.
Note: Multiple-column layout is closely related to paged media. Each column box is a fragment, much like each printed page is a fragment of a document. Using the properties defined in the CSS fragmentation module, you can control how content breaks between columns and pages.
column-fillcolumn-gapcolumn-spancolumn-rule shorthand columns shorthand Note: Bear in mind that setting container height and line length can pose challenges for people with visual or cognitive disabilities. WCAG Success Criterion 1.4.8 states that even when the text size is doubled, content should not need to be scrolled.
Overview of the multiple-column layout specification.
Guide to using multi-column properties for laying out text.
Guide to styling columns and managing spacing between columns.
How to make elements span across all columns and control the way columns are filled.
What happens when an item overflows the column it is in and what happens when there is too much columned content to fit a container.
Introduction to the fragmentation specification and how to control where column content breaks.
Create pure-CSS carousel UI features using scroll buttons, scroll markers, and generated columns.
CSS fragmentation module
CSS box alignment module
CSS box sizing module
CSS overflow module
overflow::scroll-marker::scroll-marker-groupCSS display module
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_multicol_layout