CSS3 multiple-column layout
browser support
Internet
Explorer
Firefox Safari Chrome Opera
≤ 9 ≤ 1.0 ≤ 2 N/A ≤ 11.0
≥ 10
(2012)
≥ 1.5
(2005)
≥ 3
(2007)
≥ 1
(2008)
≥ 11.1
(2011)

The div col (short for division columns) formats a list into columns that wrap at multiple screen resolutions responsively. It automatically breaks the available screen space into equal parts, meaning, for instance, that it is not necessary to guess how many columns to use and then figure out the dividing point(s), e.g., the halfway point to divide the list into two columns, or the one-third and two-thirds points to divide the list into three columns.

{{div col}} <!-- default width is 30em -->
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}

Produces:

  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h

There are six parameters for this template:

|colwidth=
Specifies the minimum width of the columns so that the number of columns is automatically based on screen width (that is, more columns will be shown on wider displays). If no value is supplied, the template uses a default of 30em. The width can be specified in any CSS unit of measure, for instance, the em (about the width of the capital "M" of the displayed typeface), e.g., colwidth=20em.
|rules=yes
Adds vertical lines ("rules") between the columns if set to yes.
|gap=
Specifies the space between the content of adjacent columns, in any valid CSS width unit, e.g., gap=2em. The default spacing (set by browser) is 1em.
|class=
An HTML class, or multiple space-delimited classes, to apply to the columns. For example, class=plainlist nowrap.
|style=
CSS styling to apply to the columns.
|small=yes
Sets font size to 90%.
|content=
Content to apply to the columns. This parameter is effectively equivalent to {{columns-list}}, which is a pass-through for this template.
{{div col|colwidth=10em}} <!-- column width of 10em -->
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}

Produces:

  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
{{Div col|colwidth=10em|rules=yes}} <!-- column width of 10em with rules -->
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}

Produces:

  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
{{Div col|colwidth=10em|rules=yes|gap=2em}} <!-- column width of 10em with rules and a gap of 2em -->
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}

Produces:

  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
{{Div col|small=yes}} <!-- Small = yes -->
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}

Produces:

  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
{{Div col|colwidth=10em|content= <!-- content parameter doesn't need {{div col end}} -->
* a
* b
* c
* d
* e
* f
* g
* h
}}

Produces:

  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
{{Div col|colwidth=10em|rules=yes|gap=2em|small=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{Div col end}}

Produces:

  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h

Text characters without list markup

संपादन करीं
{{div col|colwidth=10em}} <!--Text characters without list markup -->
a
b
c
d
e
f
g
h
{{div col end}}

Produces

a b c d e f g h

{{div col}} <!--Lorem ipsum -->
{{lorem ipsum}}
{{div col end}}

Produces

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

The underlying CSS system is unable to break sub-lists into columns. Note the uneven formatting below:

{{Div col|colwidth=10em|rules=yes|gap=2em|style=column-count:3|content=
* a
* b
* c
** c.d
** c.e
** c.f
* g
* h
}}

Produces:

  • a
  • b
  • c
    • c.d
    • c.e
    • c.f
  • g
  • h

Turning off the break-inside: avoid-column; rule appears to help.

This is the TemplateData documentation for this template used by VisualEditor and other tools.

TemplateData for Div col end

Ends a multi-column list started by {{div col}}. It takes no parameters.

Template parameters[Edit template data]

ParameterDescriptionTypeStatus
No parameters specified

Column-generating template families

संपादन करीं
Family Type
Handles wiki
 table code?dagger
Start template Column divider End template
"Col" Table Yes {{Col-begin}}
or {{Col-begin-small}}
{{Col-break}}
{{Col-2}} .. {{Col-5}}
{{Col-end}}
"Columns" Table No {{Columns}}
"Col-float" CSS float Yes {{Col-float}} {{Col-float-break}} {{Col-float-end}}
"Columns-start" CSS float Yes {{Columns-start}} {{Column}} {{Columns-end}}
"Div col" CSS columns Yes {{Div col}}
– {{Columns-list}} (wrapper)
{{Div col end}}

dagger I.e., can the columns handle the wiki markup {| | || |- |} used to create tables? If not, templates that produce these elements (such as {{(!}}, {{!}}, {{!!}}, {{!-}}, {{!)}}) and/or HTML tags (<table>...</table>, <tr>...</tr>, etc.) will need to be used instead.