This is the template sandbox page for Template:Div col (diff). See also the companion subpage for test cases. |
Property | Internet Explorer |
Firefox | Safari | Chrome | Opera |
---|---|---|---|---|---|
column-width column-count |
≥ 10 (2012) |
≥ 1.5 (2005) |
≥ 3 (2007) |
≥ 1 (2008) |
≥ 11.1 (2011) |
columns | ≥ 10 (2012) |
≥ 9 (2011) |
≥ 3 (2007) |
≥ 1 (2008) |
≥ 11.1 (2011) |
break-before break-after break-inside |
≥ 10 (2012) |
≥ 65 (2019) |
≥ 10 (2016) |
≥ 65 (2016) |
≥ 15 (2013) |
This template uses Lua: |
This template uses TemplateStyles: |
The template {{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. To prevent a section of a list being broken, the template {{No col break}} can be used.
{{div col}}<!-- default width is 30em -->
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
Produces:
There are six parameters for this template:
|colwidth=
colwidth=20em
.|rules=yes
yes
.|gap=
gap=2em
. The default spacing (set by browser) is 1em.|class=
|style=
|small=yes
|content=
{{div col|colwidth=10em}} <!-- column width of 10em -->
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
Produces:
{{div col|colwidth=10vw}} <!-- column width of 10% of the viewable area or container-->
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
Produces:
{{div col|colwidth=10em|rules=yes}} <!-- column width of 10em with rules -->
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
Produces:
{{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:
{{div col|small=yes}} <!-- Small = yes -->
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
Produces:
{{div col|colwidth=10em|content= <!-- content parameter doesn't need {{div col end}} -->
* a
* b
* c
* d
* e
* f
* g
* h
}}
Produces:
{{div col|colwidth=10em|rules=yes|gap=2em|small=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
Produces:
{{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 adipiscing 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:
Turning off the break-inside: avoid-column;
rule appears to help.
In certain circumstances, Chrome-based browsers can separate images from their captions, placing the caption in the next column. This bug was reported in 2018 as T193163, and it appears to be a bug in Chromium, tracked as issue 40578413.
TemplateData for Div col
Breaks a list into columns. It automatically breaks each column to an equal space, so you do not manually have to find the half way point on two columns. The list is provided by |content= or closed with {{div col end}}.
Parameter | Description | Type | Status | |
---|---|---|---|---|
Column width | colwidth | Specifies the width of columns, and determines dynamically the number of columns based on screen width; more columns will be shown on wider displays.
| String | optional |
Rules | rules | Produces vertical rules between the columns if set to yes.
| String | optional |
Gap size | gap | Specifies the space between the content of adjacent columns.
| String | optional |
HTML class | class | Specifies any class or multiple space-delimited classes.
| String | optional |
CSS style | style | Specifies any custom styling. | String | optional |
Content | content | Specifies the content to divide into columns | Content | optional |
Small font | small | Use a smaller font size (90%)
| String | optional |
{{col div}}
{{colbegin}}
(but not {{col begin}}
or {{col-begin}}
){{cols}}
{{div col start}}
{{div col begin}}
{{div-col}}
{{palmares start}}
The templates listed here are not interchangeable. For example, using {{col-float}} with {{col-end}} instead of {{col-float-end}} would leave a <div>...</div>
open, potentially harming any subsequent formatting.
Type | Family | Handles wiki
table code?† |
Responsive/ mobile suited |
Start template | Column divider | End template |
---|---|---|---|---|---|---|
Float | "col-float" | Yes | Yes | {{col-float}} | {{col-float-break}} | {{col-float-end}} |
"columns-start" | Yes | Yes | {{columns-start}} | {{column}} | {{columns-end}} | |
Columns | "div col" | Yes | Yes | {{div col}} | – | {{div col end}} |
"columns-list" | No | Yes | {{columns-list}} (wraps div col) | – | – | |
Flexbox | "flex columns" | No | Yes | {{flex columns}} | – | – |
Table | "col" | Yes | No | {{col-begin}}, {{col-begin-fixed}} or {{col-begin-small}} |
{{col-break}} or {{col-2}} .. {{col-5}} |
{{col-end}} |
† Can template handle the basic wiki markup {| | || |- |}
used to create tables? If not, special templates that produce these elements (such as {{(!}}, {{!}}, {{!!}}, {{!-}}, {{!)}})—or HTML tags (<table>...</table>
, <tr>...</tr>
, etc.)—need to be used instead.