CSS Multi-column Layout
The modern standard for multi-column text layouts. Learn more at MDN →
<multicol> ElementThe <multicol> element was an early Netscape Navigator extension that attempted to create multi-column text layouts directly in HTML. It predated CSS layout capabilities and was removed from browsers due to lack of standardization and the introduction of proper CSS multi-column properties.
The <multicol> element was introduced in Netscape Navigator 3.0 (1996) as a way to create newspaper-style column layouts. It was one of many proprietary HTML extensions created during the “browser wars” era. The element was never part of any HTML standard and was eventually deprecated in favor of CSS-based solutions.
<!-- This element no longer works --><multicol cols="3" gutter="20" width="200"> Content would flow into multiple columns here.</multicol>These attributes only worked in old Netscape browsers:
| Attribute | Description | Values |
|---|---|---|
cols | Number of columns | Positive integer (e.g., 2, 3, 4) |
gutter | Space between columns in pixels | Pixel value without unit (e.g., 20) |
width | Width of each column in pixels | Pixel value without unit (e.g., 200) |
<!-- This will NOT work in modern browsers --><multicol cols="3" gutter="15" width="150"> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<p>Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<p>Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p></multicol>The <multicol> element was deprecated and removed for several reasons:
Non-standard: Only worked in Netscape Navigator. Never adopted by Internet Explorer, Opera, or other browsers, creating compatibility issues.
Limited functionality: Offered very basic column control compared to modern CSS capabilities. No support for column spanning, break control, or responsive design.
Separation of concerns: Mixed presentation (layout) with content (HTML), violating web standards principles that separate structure from styling.
CSS superseded it: The CSS Multi-column Layout Module provides far superior functionality with better browser support and more flexible control.
Security and maintenance: Proprietary browser features create security risks and maintenance burdens. Standards-based approaches are more secure and maintainable.
CSS Multi-column Layout provides powerful, standardized multi-column functionality that works across all modern browsers.
The column-count property specifies the number of columns. Content flows automatically from one column to the next.
The column-width property sets an optimal column width. The browser creates as many columns as will fit.
Customize column appearance with:
column-gap: Space between columns
column-rule: Visual divider between columns (similar to border syntax)
column-span: Allow elements to span across all columns
Use break-inside: avoid to prevent elements from breaking across columns. Other break properties:
break-before: Force a column break before an element
break-after: Force a column break after an element
break-inside: Control whether element can break across columns
Using column-width instead of column-count creates responsive layouts that automatically adjust to available space.
For more complex layouts with different content in each column, CSS Grid provides better control:
Converting from <multicol> to modern CSS:
<multicol cols="3" gutter="20" width="200"> <p>Your content here...</p></multicol><div class="multi-column"> <p>Your content here...</p></div>
<style> .multi-column { column-count: 3; column-gap: 20px; column-width: 200px; }</style><div class="grid-layout"> <div class="col">Content 1</div> <div class="col">Content 2</div> <div class="col">Content 3</div></div>
<style> .grid-layout { display: grid; grid-template-columns: repeat(3, 200px); gap: 20px; }</style>CSS Multi-column Layout: Use when you have continuous text content that should flow naturally across columns (like newspaper articles, blog posts).
CSS Grid Layout: Use when you have distinct sections that need precise positioning or different content types in each column (like dashboards, card layouts).
.column-container { /* Number of columns */ column-count: 3;
/* Optimal column width (auto columns) */ column-width: 250px;
/* Shorthand for count and width */ columns: 3 250px;
/* Space between columns */ column-gap: 20px;
/* Visual divider between columns */ column-rule: 1px solid #ccc; column-rule-color: #3498db; column-rule-style: solid; column-rule-width: 2px;
/* Allow element to span columns */ column-span: all; /* or none */
/* Minimum column height */ column-fill: balance; /* or auto */}
/* Control breaks within elements */.avoid-break { break-inside: avoid; page-break-inside: avoid; /* Legacy support */}The <multicol> element was only supported in early Netscape browsers:
| Browser | Support Period | Notes |
|---|---|---|
| Netscape Navigator | 3.0 - 4.x (1996-1998) | Original implementation |
| Other browsers | Never supported | IE, Opera, Safari never implemented it |
| Modern browsers | No support | Completely removed from all browsers |
CSS Multi-column Layout is well-supported in all modern browsers:
| Browser | Version | Notes |
|---|---|---|
| Chrome | 50+ | Full support |
| Firefox | 52+ | Full support |
| Safari | 9+ | Full support |
| Edge | 12+ | Full support |
| IE | 10+ | Partial support (lacks break properties) |
CSS Multi-column Layout
The modern standard for multi-column text layouts. Learn more at MDN →
CSS Grid Layout
For complex layouts with distinct sections in each column. Learn more at CSS-Tricks →
CSS Flexbox
For flexible one-dimensional layouts. Learn more at MDN →
Deprecated Elements
Learn about other deprecated HTML elements to avoid. View all deprecated elements →
CSS Multi-column Layout Module Level 1
The official W3C specification for CSS multi-column properties that replaced the non-standard <multicol> element.
Additional Resources