Contents
Working with CSS columns
CSS columns is a shorthand for both column-width and column-count properties:
.news1 {
-webkit-columns: 100px 3; /* Chrome, Safari, Opera */
-moz-columns: 100px 3; /* Firefox */
columns: 100px 3;
}
.news2 {
-webkit-columns: 50px 4; /* Chrome, Safari, Opera */
-moz-columns: 50px 4; /* Firefox */
columns: 50px 4;
}
The syntax for this property is rather intuitive:
columns: width count;
We will explain both column-width and column-count properties in the following sections.
Defining column width in CSS
To specify the optimal CSS column width, use the column-width property:
div {
-webkit-column-width: 200px; /* Opera, Chrome, Safari */
-moz-column-width: 200px; /* Firefox */
column-width: 200px;
}
The syntax is simple, as you only need to define one value:
column-width: value;
You can either use the default value auto which will simply divide the content into the number of columns specified by column-count equally, or define the width in any CSS unit (e.g., px or ems).
Setting column count
By using the CSS column-count property, you can specify the number of columns an element should be divided into:
div {
-webkit-column-count: 2; /* Opera, Chrome, Safari */
-moz-column-count: 2; /* Firefox */
column-count: 2;
}
Just like column-width, column-count only takes one value:
column-count: value;
The default value for CSS column-count is auto, which lets column-width define the number of columns. The browser will divide the window into columns of specified width.
If you need an exact number of columns, define one in a unitless number.
Manipulating the CSS column rule
Just like columns, the column-rule property is actually a shorthand for three subproperties:
column-rule-widthcolumn-rule-stylecolumn-rule-color
div {
-webkit-column-rule: 10px outset green; /* Opera, Chrome, Safari */
-moz-column-rule: 10px outset green; /* Firefox */
column-rule: 10px outset green;
}
The CSS column rule is a kind of border that separates CSS columns from one another.
Using this shorthand, you can define three values for it:
column-rule: width style color;
In the following sections, we will explain each subproperty in more detail.
The width of the column rule
The CSS column-rule-width property is used to specify the width of rule between columns:
div {
-webkit-column-rule-width: 5px; /* Opera,Chrome, Safari */
-moz-column-rule-width: 5px; /* Firefox */
column-rule-width: 5px;
}
The syntax only requires you to define one value:
column-rule-width: value;
| Value | Description |
|---|---|
| Keywords | The width defined as thin, medium, or thick |
| Length | The width in CSS length units |
The column rule style
To style the column rule, use the CSS column-rule-style property:
div {
-webkit-column-rule-style: dashed; /* Opera, Chrome, Safari */
-moz-column-rule-style: dashed; /* Firefox */
column-rule-style: dashed;
}
You only need to define one value for this property:
column-rule-style: value;
All the available values are listed in the table below:
| Value | Description |
|---|---|
| none | The default value. No border is displayed |
| hidden | No border is displayed |
| dotted | A border of round dots is displayed |
| dashed | A border of short dashes is displayed |
| solid | A single solid border is displayed |
| double | A double border is displayed |
| groove | An inward-curving border is displayed |
| ridge | An outward-curving border is displayed |
| inset | An embedded border is displayed |
| outset | An embossed border is displayed |
Coloring the column rule
The CSS column-rule-color property is used to color the rule between columns:
div {
-webkit-column-rule-color: green; /* Opera, Chrome, Safari */
-moz-column-rule-color: green; /* Firefox */
column-rule-color: green;
}
The syntax goes as follows:
column-rule-color: value;
You can specify the color in color names, RGB, RGBA, HEX, HSL or HSLA values.
Tip: to get the value for the exact color tone you need, use the Pickeristic color picker.
Defining the column gap in CSS
The CSS column-gap property is used to specify the column gap in CSS:
div {
-webkit-column-gap: 50px; /* Opera, Chrome, Safari */
-moz-column-gap: 50px; /* Firefox */
column-gap: 50px;
}
You can define the gap either by using the keyword normal or specifying an exact length:
column-gap: value;
The default value is normal which equals to 1em. To specify a custom width for the column gap, use any CSS length unit (e.g., pixels or ems).
The CSS column span
The CSS column-span property specifies how many columns an element should span across:
h1 {
-webkit-column-span: all; /* Opera, Chrome, Safari */
column-span: all;
}
There are two keywords you can use as values to define the CSS column span:
column-span: none; / column-span: all;
The default value is none, which means the element stays in one column and does not span across multiple columns. To make the element span across all the columns in the table, use all.