Prodigixhelp: Difference between revisions

From Prodigix Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
/* {{pp|small=yes}} */
{{Documentation subpage}}
.div-col {
<!-----------------------------------------------------------------------------
margin-top: 0.3em;
  PLEASE ADD CATEGORIES WHERE INDICATED AT THE BOTTOM OF THIS PAGE
column-width: 30em;
------------------------------------------------------------------------------>
}
{{#ifeq:{{FULLPAGENAME}}|Template:Div col|{{High-use| 269676 }}|{{#ifeq:{{FULLPAGENAME}}|Template:Div col end|{{High-use| 209292 }}}}}}
{{Ombox |type=notice |text=Columns are not supported by some older browsers, most notably Internet Explorer 9 and earlier and Opera 11.0 and earlier. See {{section link|Template:Reflist#Browser support for columns}} for more information.}}
{{CSS3 multiple column layout}}
<!--{{Lua|Module:Check for unknown parameters}}
{{Uses TemplateStyles|Template:Div col/styles.css}}-->
 
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===
<pre>
{{div col}}<!-- default width is 30em -->
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
</pre>
Produces:
{{div col}}
* a
* b
* c
* d
* e
* f
* g
* 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. For example, <code>class=plainlist nowrap</code>.
; {{para|style}}
: [[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>
{{div col|colwidth=10em}} <!-- column width of 10em -->
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
</pre>
Produces:
{{div col|colwidth=10em}}
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
 
====Rules====
<pre>
{{div col|colwidth=10em|rules=yes}} <!-- column width of 10em with rules -->
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
</pre>
Produces:
{{div col|colwidth=10em|rules=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}


.div-col-rules {
====Gap====
column-rule: 1px solid #aaa;
<pre>
}
{{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}}
</pre>
Produces:
{{div col|colwidth=10em|rules=yes|gap=2em}}
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}


/* Reset top margin for lists in div col */
====Small====
.div-col dl,
<pre>
.div-col ol,
{{div col|small=yes}} <!-- Small = yes -->
.div-col ul {
* a
margin-top: 0;
* b
}
* c
* d
* e
* f
* g
* h
{{div col end}}
</pre>
Produces:
{{div col|small=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}


/* Avoid elements breaking between columns
====Content====
  See also Template:No col break */
<pre>
.div-col li,
{{div col|colwidth=10em|content= <!-- content parameter doesn't need {{div col end}} -->
.div-col dd {
* a
page-break-inside: avoid; /* Removed from CSS in favor of break-inside c. 2020 */
* b
break-inside: avoid-column;
* c
}
* d
* e
* f
* g
* h
}}
</pre>
Produces:
{{div col|colwidth=10em|content=
* a
* b
* c
* d
* e
* f
* g
* h
}}


{{div col|colwidth=30em}}
====Multiple parameters====
<pre>
{{div col|colwidth=10em|rules=yes|gap=2em|small=yes}}
* a
* a
* b
* b
Line 34: Line 192:
* h
* h
{{div col end}}
{{div col end}}
</pre>
Produces:
{{div col|colwidth=10em|rules=yes|gap=2em|small=yes}}
* a
* b
* c
* d
* e
* f
* g
* h
{{div col end}}
====Text characters without list markup====
<pre>
{{div col|colwidth=10em}} <!--Text characters without list markup -->
a
b
c
d
e
f
g
h
{{div col end}}
</pre>
Produces
{{div col|colwidth=10em}}
a
b
c
d
e
f
g
h
{{div col end}}
====Lorem ipsum====
<pre>
{{div col}} <!--Lorem ipsum -->
{{lorem ipsum}}
{{div col end}}
</pre>
Produces
{{div col}}
{{lorem ipsum}}
{{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 refresh is needed; just F12-ing doesn't work. -->
==Tracking categories==
* {{category link with count|Pages using div col with unknown parameters}} (for erroneous use of parameter names not documented here)
* {{category link with count|Pages using div col with small parameter}}
<!--
<!-- Too troublesome to fix for now; feel free to edit if you need it
==TemplateData==
{{TemplateData header}}
{{#switch: {{BASEPAGENAME}}
|Div col=<templatedata>
{
"description": "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}}.",
"params": {
"colwidth": {
"label": "Column width",
"description": "Specifies the width of columns, and determines dynamically the number of columns based on screen width; more columns will be shown on wider displays.",
"type": "string",
"example": "30em"
},
"rules": {
"label": "Rules",
"description": "Produces vertical rules between the columns if set to yes.",
"type": "string",
"example": "yes"
},
"gap": {
"label": "Gap size",
"description": "Specifies the space between the content of adjacent columns.",
"type": "string",
"example": "2em"
},
"class": {
"label": "HTML class",
"description": "Specifies any class or multiple space-delimited classes.",
"type": "string",
"example": "plainlist nowrap"
},
"style": {
"label": "CSS style",
"description": "Specifies any custom styling.",
"type": "string"
},
"content": {
"label": "Content",
"description": "Specifies the content to divide into columns",
"type": "content"
},
"small": {
"label": "Small font",
"description": "Use a smaller font size (90%)",
"example": "yes",
"type": "string"
}
}
}
</templatedata>
|Div col end=<templatedata>
{
    "description": "Ends a multi-column list started by {{div col}}. It takes no parameters.",
    "params": {
    }
}
</templatedata>
}}
-->
==Redirects==
{{#ifeq:{{PAGENAME}}|div col/doc|Redirects to {{tl|div col}}:}}
{{#ifeq:{{ROOTPAGENAME}}|div col|
* {{tlx|col div}}
* {{tlx|colbegin}} (but '''not''' {{tlx|col begin}} or {{tlx|col-begin}})
* {{tlx|cols}}
* {{tlx|div col start}}
* {{tlx|div col begin}}
* {{tlx|div-col}}
* {{tlx|palmares start}}
}}<!--
-->{{#ifeq:{{PAGENAME}}|div col/doc|<nowiki />
Redirects to {{tl|div col end}}:}}<!--
-->{{#switch:{{PAGENAME}}|div col end|div col/doc=
*{{tlx|col div end}}
*{{tlx|colend}} (but '''not''' {{tlx|Col end}})
*{{tlx|div end}}
*{{tlx|Divcol-end}}
*{{tlx|Divcolend}}
*{{tlx|Divend}}
*{{tlx|End div col}}
*{{tlx|EndDivCol}}
}}
==See also==
{{column-generating template families}}
<includeonly>{{Sandbox other|
| <!-- CATEGORIES BELOW THIS LINE, PLEASE: -->
[[Category:Multi-column templates]]
[[Category:Templates that add a tracking category]]
<!--?:-->{{#switch:{{PAGENAME}} |div col= |div col end=}}
}}</includeonly>

Latest revision as of 04:54, 20 February 2023


Template:Ombox Template:CSS3 multiple column layout

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[edit | edit source]

Basic usage[edit | edit source]

{{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[edit | edit source]

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.

Examples[edit | edit source]

Colwidth[edit | edit source]

{{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[edit | edit source]

{{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[edit | edit source]

{{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[edit | edit source]

{{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[edit | edit source]

{{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[edit | edit source]

{{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[edit | edit source]

{{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

Lorem ipsum[edit | edit source]

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

Produces

Limitation[edit | edit source]

Sub-lists[edit | edit source]

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 Template:Code rule appears to help.

Tracking categories[edit | edit source]


Redirects[edit | edit source]

See also[edit | edit source]

Template:Column-generating template families