CSS Multiple Columns

CSS Multiple Columns, also known as multicol, allows you to divide content into multiple columns for better readability and layout control. It’s ideal for newspaper-style designs and formatting lengthy text.

Key Topics

Column Count

The column-count property specifies the number of columns into which the content should be split.

<style>
        .column-count {
            column-count: 3;
        }
</style>
<div class="column-count">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet...
</div>

Explanation: The content is divided into three equal columns for a structured layout.

Column Gap

The column-gap property defines the spacing between columns.

<style>
        .column-gap {
            column-count: 3;
            column-gap: 20px;
        }
</style>
<div class="column-gap">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet...
</div>

Explanation: A 20px gap is added between the columns to enhance readability.

Column Rule

The column-rule property adds a line between columns for better separation.

<style>
        .column-rule {
            column-count: 3;
            column-rule: 2px solid #007BFF;
        }
</style>
<div class="column-rule">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet...
</div>

Explanation: A 2px solid blue line separates the columns for better visual distinction.

Column Width

The column-width property specifies the ideal width of columns. The browser automatically adjusts the number of columns to fit the container.

<style>
        .column-width {
            column-width: 150px;
        }
</style>
<div class="column-width">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet...
</div>

Explanation: Columns are dynamically created with a width of 150px, adjusting to the container size.

Responsive Columns

Use media queries to make columns responsive, ensuring optimal readability on different devices.

<style>
        @media (max-width: 600px) {
            .responsive-columns {
                column-count: 1;
            }
        }
        @media (min-width: 601px) {
            .responsive-columns {
                column-count: 3;
            }
        }
</style>
<div class="responsive-columns">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet...
</div>

Explanation: On smaller screens, the content is displayed in a single column, while on larger screens, it splits into three columns.

Key Takeaways

  • Column Count: Define the number of columns with column-count.
  • Column Gap: Adjust spacing between columns using column-gap.
  • Column Rule: Add lines between columns for better separation.
  • Column Width: Specify ideal column widths and let the browser adjust their count.
  • Responsive Design: Use media queries to adapt columns to different screen sizes.