What is CSS Multi-Column Layout?
The CSS multi-column layout module allows you to flow content into multiple columns, similar to newspapers or magazines. It is useful for improving readability, making better use of horizontal space, and creating visually engaging layouts.
- column-count: Number of columns
- column-gap: Space between columns
- column-rule: Line between columns (shorthand for style, width, color)
- column-width: Ideal width of each column
- column-span: Make an element span across all columns
- columns: Shorthand for
column-widthandcolumn-count
Columns are responsive and will adjust based on available space and the properties you set.
Interactive Examples
Basic Multi-Column Layout (column-count)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisi eu velit. Suspendisse potenti. Etiam euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisi eu velit.
.columns-count {
column-count: 3;
}
Column Gap (column-gap)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisi eu velit. Suspendisse potenti. Etiam euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisi eu velit.
.columns-gap {
column-count: 3;
column-gap: 2.5em;
}
Column Rule (column-rule)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisi eu velit. Suspendisse potenti. Etiam euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisi eu velit.
.columns-rule {
column-count: 3;
column-rule: 3px dashed #8e44ad;
}
Column Width (column-width)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisi eu velit. Suspendisse potenti. Etiam euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisi eu velit.
.columns-width {
column-width: 180px;
}
Column Span (column-span)
This heading spans all columns
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisi eu velit. Suspendisse potenti. Etiam euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisi eu velit.
.columns-span {
column-count: 3;
}
.span-all {
column-span: all;
}
Columns Shorthand (columns)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisi eu velit. Suspendisse potenti. Etiam euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisi eu velit.
.columns-shorthand {
columns: 180px 3;
}
Best Practices & Accessibility
- Use multi-column layout for text-heavy content to improve readability.
- Test column layouts on different screen sizes for responsiveness.
- Use
column-spanfor headings or elements that should stretch across all columns. - Be cautious with interactive elements (forms, buttons) inside columns—they may break across columns.
- Combine with other layout techniques (Flexbox, Grid) for advanced designs.