Template:Div col/doc: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
{{Documentation subpage}} | {{Documentation subpage}} | ||
{{ | {{Lua|Module:Check for unknown parameters}} | ||
{{Uses TemplateStyles|Template:Div col/styles.css}} | |||
__NOTOC__ | |||
{{ | |||
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. | |||
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 | |||
== Usage == | |||
=== Basic Usage === | |||
== | |||
=== | |||
<pre> | <pre> | ||
{{div col | {{div col}}<!-- default width is 30em --> | ||
* a | * a | ||
* b | * b | ||
Line 40: | Line 20: | ||
{{div col end}} | {{div col end}} | ||
</pre> | </pre> | ||
Produces: | |||
{{ | {{div col}} | ||
* a | * a | ||
* b | * b | ||
Line 50: | Line 30: | ||
* g | * g | ||
* h | * h | ||
{{ | {{div col end}} | ||
=== | == Parameters == | ||
There are six parameters for this template: | |||
; {{para|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#Length units|CSS unit of measure]], for instance, the [[Em (typography)|em]] (about the width of the capital "M" of the displayed typeface), e.g., <code>colwidth=20em</code>. | |||
; {{para|rules|yes}} : Adds vertical lines ("rules") between the columns if set to <code>yes</code>. | |||
; {{para|gap}} : Specifies the space between the content of adjacent columns, in any valid CSS width unit, e.g., <code>gap=2em</code>. The default spacing (set by browser) is 1em. | |||
; {{para|class}} : An HTML class, or multiple space-delimited classes, to apply to the columns. | |||
; {{para|style}} : [[wikipedia:Cascading Style Sheets|CSS styling]] to apply to the columns. | |||
; {{para|small|yes}} : Sets font size to 90%. | |||
; {{para|content}} : Content to apply to the columns. This parameter is effectively equivalent to {{tl|columns-list}}, which is a pass-through for this template. | |||
== Examples == | |||
=== Colwidth === | |||
<pre> | <pre> | ||
{{ | {{div col|colwidth=10em}} <!-- column width of 10em --> | ||
* a | * a | ||
* b | * b | ||
Line 64: | Line 54: | ||
* g | * g | ||
* h | * h | ||
{{ | {{div col end}} | ||
</pre> | </pre> | ||
Produces: | |||
{{ | {{div col|colwidth=10em}} | ||
* a | * a | ||
* b | * b | ||
Line 76: | Line 66: | ||
* g | * g | ||
* h | * h | ||
{{ | {{div col end}} | ||
=== | === Rules === | ||
<pre> | <pre> | ||
{{ | {{div col|colwidth=10em|rules=yes}} <!-- column width of 10em with rules --> | ||
* a | * a | ||
* b | * b | ||
Line 90: | Line 79: | ||
* g | * g | ||
* h | * h | ||
{{ | {{div col end}} | ||
</pre> | </pre> | ||
Produces: | |||
{{ | {{div col|colwidth=10em|rules=yes}} | ||
* a | * a | ||
* b | * b | ||
Line 102: | Line 91: | ||
* g | * g | ||
* h | * h | ||
{{ | {{div col end}} | ||
=== | === Gap === | ||
<pre> | <pre> | ||
{{ | {{div col|colwidth=10em|rules=yes|gap=2em}} <!-- column width of 10em with rules and a gap of 2em --> | ||
* a | * a | ||
* b | * b | ||
Line 116: | Line 104: | ||
* g | * g | ||
* h | * h | ||
{{ | {{div col end}} | ||
</pre> | </pre> | ||
Produces: | |||
{{ | {{div col|colwidth=10em|rules=yes|gap=2em}} | ||
* a | * a | ||
* b | * b | ||
Line 128: | Line 116: | ||
* g | * g | ||
* h | * h | ||
{{ | {{div col end}} | ||
=== | === Small === | ||
<pre> | <pre> | ||
{{ | {{div col|small=yes}} <!-- Small = yes --> | ||
* a | * a | ||
* b | * b | ||
Line 142: | Line 129: | ||
* g | * g | ||
* h | * h | ||
}} | {{div col end}} | ||
</pre> | </pre> | ||
Produces: | |||
{{ | {{div col|small=yes}} | ||
* a | * a | ||
* b | * b | ||
Line 154: | Line 141: | ||
* g | * g | ||
* h | * h | ||
}} | {{div col end}} | ||
=== | === Content === | ||
<pre> | <pre> | ||
{{ | {{div col|colwidth=10em|content= <!-- content parameter doesn't need {{div col end}} --> | ||
* a | * a | ||
* b | * b | ||
Line 169: | Line 154: | ||
* g | * g | ||
* h | * h | ||
}} | |||
</pre> | </pre> | ||
Produces: | |||
{{div col|colwidth=10em|content= | |||
{{ | |||
* a | * a | ||
* b | * b | ||
Line 182: | Line 166: | ||
* g | * g | ||
* h | * h | ||
}} | |||
=== Multiple Parameters === | |||
<pre> | <pre> | ||
{{div col|colwidth= | {{div col|colwidth=10em|rules=yes|gap=2em|small=yes}} | ||
* a | * a | ||
* b | * b | ||
Line 220: | Line 181: | ||
{{div col end}} | {{div col end}} | ||
</pre> | </pre> | ||
Produces: | |||
{{ | {{div col|colwidth=10em|rules=yes|gap=2em|small=yes}} | ||
* a | * a | ||
* b | * b | ||
Line 244: | Line 192: | ||
* h | * h | ||
{{div col end}} | {{div col end}} | ||
=== Text characters without list markup === | |||
<pre> | <pre> | ||
{{div col|colwidth=10em}} | {{div col|colwidth=10em}} <!--Text characters without list markup --> | ||
a | a | ||
b | b | ||
Line 270: | Line 206: | ||
{{div col end}} | {{div col end}} | ||
</pre> | </pre> | ||
Produces | |||
{{ | {{div col|colwidth=10em}} | ||
a | a | ||
b | b | ||
Line 280: | Line 216: | ||
g | g | ||
h | h | ||
{{ | {{div col end}} | ||
== Limitation == | |||
=== Sub-lists === | |||
The underlying CSS system is unable to break sub-lists into columns. Note the uneven formatting below: | |||
<pre> | |||
{{div col|colwidth=10em|rules=yes|gap=2em|style=column-count:3|content= | |||
* a | |||
* b | |||
* c | |||
** c.d | |||
** c.e | |||
** c.f | |||
* g | |||
* h | |||
}} | |||
</pre> | |||
Produces: | |||
{{div col|colwidth=10em|rules=yes|gap=2em|style=column-count:3|content= | |||
* a | |||
* b | |||
* c | |||
** c.d | |||
** c.e | |||
** c.f | |||
* g | |||
* h | |||
}} | |||
Turning off the {{code|break-inside: avoid-column;}} rule appears to help.<!-- A full page refersh is needed; just F12-ing doesn't work. --> | |||
==Tracking categories== | |||
* {{c|Pages using div col with unknown parameters}} (for erroneous use of parameter names not documented here) | |||
* {{c|Pages using div col with small parameter}} | |||
==TemplateData== | ==TemplateData== | ||
Line 298: | Line 268: | ||
"description": "Produces vertical rules between the columns if set to yes.", | "description": "Produces vertical rules between the columns if set to yes.", | ||
"type": "string", | "type": "string", | ||
"example": " | "example": "yes" | ||
}, | }, | ||
"gap": { | "gap": { | ||
Line 305: | Line 275: | ||
"type": "string", | "type": "string", | ||
"example": "2em" | "example": "2em" | ||
}, | |||
"class": { | |||
"label": "HTML class", | |||
"description": "Specifies any class or multiple space-delimited classes.", | |||
"type": "string", | |||
"example": "plainlist nowrap" | |||
}, | }, | ||
"style": { | "style": { | ||
Line 314: | Line 290: | ||
"label": "Content", | "label": "Content", | ||
"description": "Specifies the content to divide into columns", | "description": "Specifies the content to divide into columns", | ||
"type": " | "type": "content" | ||
}, | }, | ||
"small": { | "small": { | ||
Line 320: | Line 296: | ||
"description": "Use a smaller font size (90%)", | "description": "Use a smaller font size (90%)", | ||
"example": "yes", | "example": "yes", | ||
"type": "string | "type": "string" | ||
} | } | ||
} | } | ||
Line 335: | Line 310: | ||
}} | }} | ||
<includeonly> | <includeonly>{{sandbox other||{{testcases other|| | ||
<!-- Categories below this line, please --> | <!-- Categories below this line, please --> | ||
[[Category: | [[Category:Templates]] | ||
[[Category:Utility Templates]] | |||
[[Category:Templates that add a tracking category]] | [[Category:Templates that add a tracking category]] | ||
}}}}</includeonly> | |||
}}</includeonly> |
Revision as of 05:09, 14 June 2023
It contains usage information, categories and other content that is not part of the original template page.
|
This template uses Lua: |
This template uses TemplateStyles: |
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.
Usage
Basic Usage
{{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
Parameters
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.
|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.
Examples
Colwidth
{{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
Rules
{{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
Gap
{{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
Small
{{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
Content
{{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
Multiple Parameters
{{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
Limitation
Sub-lists
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.
Tracking categories
- Pages using div col with unknown parameters (for erroneous use of parameter names not documented here)
- Pages using div col with small parameter
TemplateData
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 |