Jump to content

Help:Collapsing: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
→‎Sortable tables: // Edit via Wikiplus
 
(42 intermediate revisions by 30 users not shown)
Line 1: Line 1:
{{Short description|Wikipedia project page}}
{{for|an older method of collapsing|WP:NAVFRAME}}
{{About|how to collapse content when editing Wikipedia pages|the Manual of Style on collapsing content|MOS:COLLAPSE}}
{{Wikipedia how-to|H:COLS}}
{{Wikipedia how-to|H:COLS}}
A '''collapsible''' element contains a toggle a reader can use to show or hide the element's content. Elements are made collapsible by adding the <code>mw-collapsible</code> class, or alternatively by using the {{Tl|Collapse}} template, or its variants {{Tl|Collapse-top}} and {{Tl|Collapse-bottom}}.
A '''collapsible''' element contains a toggle a reader can use to show or hide the element's content. Elements are made collapsible by adding the <code>mw-collapsible</code> class, or alternatively by using the {{tlx|Collapse}} template, or its variants {{tlx|Collapse top}} and {{tlx|Collapse bottom}}.

Use of these features in article content is governed by the guidelines {{section link|Wikipedia:Manual of Style#Scrolling lists and collapsible content}} generally, and more specifically by [[Wikipedia:Spoiler]].


==Collapsible tables==
==Collapsible tables==
The <code>mw-collapsible</code> class can make any element collapsible, but tables are particularly simple to make collapsible. Adding the <code>mw-collapsible</code> class to a table automatically positions the toggle, and selects which parts to collapse.
The <code>[[mw:Manual:Collapsible elements|mw-collapsible]]</code> class can make any element collapsible, but tables are particularly simple to make collapsible. Adding the <code>mw-collapsible</code> class to a table automatically positions the toggle, and selects which parts to collapse.


A common use is to make a collapsible layout table, which always displays an introduction or summary, but hides the rest of the content from immediate view. The introduction or summary is in the first row, and the content is in subsequent rows. The content is then easily accessible by using the 'show' button.
A common use is to make a collapsible layout table, which always displays an introduction or summary, but hides the rest of the content from immediate view. The introduction or summary is in the first row, and the content is in subsequent rows. The content is then easily accessible by using the 'show' button.
Line 14: Line 17:
|-
|-
|style="width:50%;"|
|style="width:50%;"|
<pre><nowiki>{| role="presentation" class="wikitable mw-collapsible"
<syntaxhighlight lang="wikitext">{| role="presentation" class="wikitable mw-collapsible"
| <strong>Lorem ipsum</strong>
| <strong>Lorem ipsum</strong>
|-
|-
| Lorem ipsum dolor sit amet
| Lorem ipsum dolor sit amet
|}</nowiki></pre>
|}</syntaxhighlight>
|style="width:50%;"|
|style="width:50%;"|
{| role="presentation" class="wikitable mw-collapsible"
{| role="presentation" class="wikitable mw-collapsible"
Line 33: Line 36:
|-
|-
|style="width:50%;"|
|style="width:50%;"|
<syntaxhighlight lang="wikitext">
<pre><nowiki>
{| class="wikitable mw-collapsible"
{| class="wikitable mw-collapsible"
|+ class="nowrap" | Winter Olympic Games
|+ class="nowrap" | Winter Olympic Games
Line 47: Line 50:
| Nagano || Japan
| Nagano || Japan
|}
|}
</syntaxhighlight>
</nowiki></pre>
|style="width:50%;"|
|style="width:50%;"|
{| class="wikitable mw-collapsible"
{| class="wikitable mw-collapsible"
Line 65: Line 68:


==Collapsing by default==
==Collapsing by default==
Just using the <code>mw-collapsible</code> class leaves the element expanded by default, but it can be collapsed by the reader. It is also possible to make the element collapsed by default, and optionally expanded. There are several methods for doing this, depending on the situations in which you want the element to collapse.
Just using the <code>mw-collapsible</code> class leaves the element expanded by default, but it can be collapsed by the reader. It is also possible to make the element collapsed by default, and optionally expanded by adding other classes along with <code>mw-collapsible</code>. There are several methods for doing this, depending on the situations in which you want the element to collapse. However, content should not be collapsed by default per [[MOS:DONTHIDE]].


==="mw-collapsed"===
==="mw-collapsed"===
Line 74: Line 77:
|-
|-
|style="width:50%;"|
|style="width:50%;"|
<pre><nowiki>{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
<syntaxhighlight lang="wikitext">{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Lorem ipsum</strong>
| <strong>Lorem ipsum</strong>
|-
|-
| Lorem ipsum dolor sit amet
| Lorem ipsum dolor sit amet
|}</nowiki></pre>
|}</syntaxhighlight>
|style="width:50%;"|
|style="width:50%;"|
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
Line 87: Line 90:
|-
|-
|style="width:50%;"|
|style="width:50%;"|
<syntaxhighlight lang="wikitext">
<pre><nowiki>
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
|+ class="nowrap" | Winter Olympic Games
|+ class="nowrap" | Winter Olympic Games
Line 101: Line 104:
| Nagano || Japan
| Nagano || Japan
|}
|}
</syntaxhighlight>
</nowiki></pre>
|style="width:50%;"|
|style="width:50%;"|
{| class="wikitable mw-collapsible mw-collapsed"
{| class="wikitable mw-collapsible mw-collapsed"
Line 120: Line 123:
==="autocollapse"===
==="autocollapse"===
{{hatnote|Using this technique causes the page to reflow/jump around and should generally be avoided.}}
{{hatnote|Using this technique causes the page to reflow/jump around and should generally be avoided.}}
Adding the <code>autocollapse</code> class causes an element to collapse if there are 2 or more collapsible elements on the page. This threshold might be different on other projects and is [[#Customization|customizable]]. The example below, therefore, collapses because there are numerous collapsible elements on this page.
Adding the <code>autocollapse</code> class causes an element to collapse if there are 2 or more collapsible elements on the page. The example below, therefore, collapses because there are numerous collapsible elements on this page.


{| class=wikitable style="width:80%;" align=center
{| class=wikitable style="width:80%;" align=center
Line 126: Line 129:
|-
|-
|style="width:50%;"|
|style="width:50%;"|
<pre><nowiki>{| role="presentation" class="wikitable mw-collapsible autocollapse"
<syntaxhighlight lang="wikitext">{| role="presentation" class="wikitable mw-collapsible autocollapse"
| <strong>Lorem ipsum</strong>
| <strong>Lorem ipsum</strong>
|-
|-
| Lorem ipsum dolor sit amet
| Lorem ipsum dolor sit amet
|}</nowiki></pre>
|}</syntaxhighlight>
|style="width:50%;"|
|style="width:50%;"|
{| role="presentation" class="wikitable mw-collapsible autocollapse"
{| role="presentation" class="wikitable mw-collapsible autocollapse"
Line 147: Line 150:
|-
|-
|style="width:50%;"|
|style="width:50%;"|
<source lang="html">
<syntaxhighlight lang="wikitext">
{| role="presentation" class="wikitable mw-collapsible innercollapse"
{| role="presentation" class="wikitable mw-collapsible innercollapse"
| This <code>innercollapse</code> element is
| This <code>innercollapse</code> element is
Line 163: Line 166:
|}
|}
</div>
</div>
</syntaxhighlight>
</source>
|style="width:50%;"|
|style="width:50%;"|
{| role="presentation" class="wikitable mw-collapsible innercollapse"
{| role="presentation" class="wikitable mw-collapsible innercollapse"
Line 185: Line 188:


===Tables with captions===
===Tables with captions===
A table without a caption will collapse to its first row. A table <em>with</em> a caption will collapse to its caption, with no rows, therefore no width. Use <code>class="nowrap"</code> or {{tl|nowrap}} to keep the caption from being squeezed into a vertical column when the table is collapsed.
A table without a caption will collapse to its first row. A table <em>with</em> a caption will collapse to its caption, with no rows, therefore no width. Use <code>class="nowrap"</code> or {{tlx|nowrap}} to keep the caption from being squeezed into a vertical column when the table is collapsed.


{|class="wikitable" style="margin:0.5em auto;width:80%"
{|class="wikitable" style="margin:0.5em auto;width:80%"
Line 193: Line 196:
|-
|-
|width="60%"|
|width="60%"|
<nowiki>{|class="wikitable sortable mw-collapsible"
<syntaxhighlight lang="wikitext">{|class="wikitable sortable mw-collapsible"
|+ class="nowrap" | Somewhat long table caption
|+ class="nowrap" | Somewhat long table caption
! Name !! Score
! Name !! Score
Line 200: Line 203:
|-
|-
| Bob || 72
| Bob || 72
|}</nowiki>
|}</syntaxhighlight>
|width="40%"|
|width="40%"|
{|class="wikitable sortable mw-collapsible"
{|class="wikitable sortable mw-collapsible"
Line 212: Line 215:
|}
|}


Next example uses '''{{tlx|nowrap}}''' where the end brackets become the wrap point. '''<code><style=max-width:Xem;</code>''' will not work.
===Sortable tables===
Collapsible tables can be combined with the [[Help:Sorting|sortable tables]] functionality without difficulty. However, because the hide/show button is placed with <code><!--Do not write mw- here-->collapsible</code> in the first header cell located or with <code>mw-collapsible</code> in the right header cell (this difference [[Talk:List of highest-grossing films#Franchise table|may change]]), its positioning can look a bit peculiar if the cell is not wide enough:


{|class="wikitable" style="margin:0.5em auto;width:80%"
|-
!scope="col" width="60%"|Code entered
!scope="col" width="40%"|Output produced
|-
|width="60%"|
<syntaxhighlight lang="wikitext">{|class="wikitable sortable mw-collapsible"
|+ {{nowrap|A longer table caption needs to wrap}} for cell phones, etc.
! Name !! Score
|-
| John || 59
|-
| Bob || 72
|}</syntaxhighlight>
|width="40%"|
{|class="wikitable sortable mw-collapsible"
|+ {{nowrap|A longer table caption needs to wrap}} for cell phones, etc.
! Name !! Score
|-
| John || 59
|-
| Bob || 72
|}
|}

===Sortable tables===
Collapsible tables can be combined with the [[Help:Sorting|sortable tables]] functionality without difficulty. However, because the hide/show button is placed with <code>mw-collapsible</code> in the right header cell, its positioning can look a bit peculiar if the cell is not wide enough:


{|class="wikitable" style="margin:0.5em auto;width:80%"
{|class="wikitable" style="margin:0.5em auto;width:80%"
Line 222: Line 251:
|-
|-
|width="60%"|
|width="60%"|
<nowiki>{|class="wikitable mw-collapsible sortable" style="width:5em"
<syntaxhighlight lang="wikitext">{|class="wikitable mw-collapsible sortable" style="width:5em"
<!--table width too narrow, on purpose here-->
<!--table width too narrow, on purpose here-->
|-
|-
Line 230: Line 259:
|-
|-
| Bob || 72
| Bob || 72
|}</nowiki>
|}</syntaxhighlight>
|width="40%"|
|width="40%"|
{|class="wikitable sortable mw-collapsible" style="width:5em"
{|class="wikitable sortable mw-collapsible" style="width:5em"
Line 242: Line 271:
|}
|}
|}
|}



A possible alternative is to add a caption over the table. See the following example.
A possible alternative is to add a caption over the table. See the following example.



{|class="wikitable" style="margin:0.5em auto;width:80%"
{|class="wikitable" style="margin:0.5em auto;width:80%"
Line 253: Line 280:
|-
|-
|width="60%"|
|width="60%"|
<nowiki>{|class="wikitable sortable mw-collapsible"
<syntaxhighlight lang="wikitext">{|class="wikitable sortable mw-collapsible"
|+ class="nowrap" | Caption
|+ class="nowrap" | Caption
! Name !! Score
! Name !! Score
Line 260: Line 287:
|-
|-
| Bob || 72
| Bob || 72
|}</nowiki>
|}</syntaxhighlight>
|width="40%"|
|width="40%"|
{|class="wikitable sortable mw-collapsible"
{|class="wikitable sortable mw-collapsible"
Line 271: Line 298:
|}
|}
|}
|}

===Customization===
Registered users can edit [[Special:MyPage/skin.js|their personal js file]] to change some of the variables used.
<source lang=javascript>
autoCollapse = 4 //how many collapsible tables on the page before autocollapse works (default=2)
var collapseCaption = 'collapse' //text of the [hide] link (default='hide')
var expandCaption = 'uncollapse' //text of the [show] link (default='show')
</source>


===Limitations===
===Limitations===
<!--The content of this section is transcluded at [[Template:Collapse top/doc#Limitations]] and [[Template:Collapse/doc#Limitations]].-->
* This functionality requires the end-user's browser to have [[JavaScript]] enabled. If Javascript is disabled, the default behaviour is to show the content.
* This functionality requires the end-user's browser to have [[JavaScript]] enabled. If JavaScript is disabled, the default behaviour is to show the content.
* It doesn't work on mobile browsers (or desktop browsers in mobile mode) either.
* It doesn't work on mobile browsers (or desktop browsers in mobile mode) either.


Line 290: Line 310:
* [[Help:Table of contents]]
* [[Help:Table of contents]]
Templates:
Templates:
* {{Tl|Collapse}}
* {{clc|Collapse templates}}
* {{Tl|Collapse-top}} and {{Tl|Collapse-bottom}} – More feature-rich than {{Tlf|collapse}}
* {{Tl|Hidden}}
* {{Tl|Navbar-collapsible}}


== External links ==
== External links ==
* [[meta:Help:Collapsing]]
*[[mw:Manual:Collapsible elements]]
*[[mw:Manual:Collapsible elements]]
*[[mw:ResourceLoader/Default modules#jquery.makeCollapsible]]
*[[mw:ResourceLoader/Default modules#jquery.makeCollapsible]]

Latest revision as of 19:30, 22 August 2024

A collapsible element contains a toggle a reader can use to show or hide the element's content. Elements are made collapsible by adding the mw-collapsible class, or alternatively by using the {{Collapse}} template, or its variants {{Collapse top}} and {{Collapse bottom}}.

Use of these features in article content is governed by the guidelines Wikipedia:Manual of Style § Scrolling lists and collapsible content generally, and more specifically by Wikipedia:Spoiler.

Collapsible tables

[edit]

The mw-collapsible class can make any element collapsible, but tables are particularly simple to make collapsible. Adding the mw-collapsible class to a table automatically positions the toggle, and selects which parts to collapse.

A common use is to make a collapsible layout table, which always displays an introduction or summary, but hides the rest of the content from immediate view. The introduction or summary is in the first row, and the content is in subsequent rows. The content is then easily accessible by using the 'show' button.

In the examples below, the use of the class wikitable is merely for appearance; it is not needed for mw-collapsible to function.

Code entered Output produced
{| role="presentation" class="wikitable mw-collapsible"
| <strong>Lorem ipsum</strong>
|-
| Lorem ipsum dolor sit amet
|}

More complex data tables can also be collapsible.

Code entered Output produced
{| class="wikitable mw-collapsible"
|+ class="nowrap" | Winter Olympic Games
|-
|
! scope="col" | City
! scope="col" | Country
|-
! scope="row" | 1994
| Lillehammer || Norway
|-
! scope="row" | 1998
| Nagano || Japan
|}
Winter Olympic Games
City Country
1994 Lillehammer Norway
1998 Nagano Japan

Collapsing by default

[edit]

Just using the mw-collapsible class leaves the element expanded by default, but it can be collapsed by the reader. It is also possible to make the element collapsed by default, and optionally expanded by adding other classes along with mw-collapsible. There are several methods for doing this, depending on the situations in which you want the element to collapse. However, content should not be collapsed by default per MOS:DONTHIDE.

"mw-collapsed"

[edit]

Adding the mw-collapsed class will cause the element to always be initially collapsed, no matter what happens around it. It is the simplest method for doing so. Using the examples above:

Code entered Output produced
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Lorem ipsum</strong>
|-
| Lorem ipsum dolor sit amet
|}
{| class="wikitable mw-collapsible mw-collapsed"
|+ class="nowrap" | Winter Olympic Games
|-
|
! scope="col" | City
! scope="col" | Country
|-
! scope="row" | 1994
| Lillehammer || Norway
|-
! scope="row" | 1998
| Nagano || Japan
|}
Winter Olympic Games
City Country
1994 Lillehammer Norway
1998 Nagano Japan

"autocollapse"

[edit]

Adding the autocollapse class causes an element to collapse if there are 2 or more collapsible elements on the page. The example below, therefore, collapses because there are numerous collapsible elements on this page.

Code entered Output produced
{| role="presentation" class="wikitable mw-collapsible autocollapse"
| <strong>Lorem ipsum</strong>
|-
| Lorem ipsum dolor sit amet
|}

"innercollapse" and "outercollapse"

[edit]

Using this pair of classes, it is possible to make an element collapsed by default only when it is contained within a particular outer element. An element with the mw-collapsible and innercollapse classes is collapsed by default if it is contained within an element with the outercollapse class; otherwise, it is uncollapsed by default. This is mainly useful for templates, which are often nested.

Code entered Output produced
{| role="presentation" class="wikitable mw-collapsible innercollapse"
| This <code>innercollapse</code> element is
|-
| <em>uncollapsed</em> by default
|}

<div class="wikitable outercollapse" style="padding:1em; background:#ccc;">
This is an element with the <code>outercollapse</code> class.

{| role="presentation" class="wikitable mw-collapsible innercollapse"
| This <code>innercollapse</code> element is
|-
| <em>collapsed</em> by default
|}
</div>

This is an element with the outercollapse class.

Other notes

[edit]

Tables with captions

[edit]

A table without a caption will collapse to its first row. A table with a caption will collapse to its caption, with no rows, therefore no width. Use class="nowrap" or {{nowrap}} to keep the caption from being squeezed into a vertical column when the table is collapsed.

Code entered Output produced
{|class="wikitable sortable mw-collapsible" 
|+ class="nowrap" | Somewhat long table caption
! Name !! Score
|-
| John || 59
|-
| Bob || 72
|}
Somewhat long table caption
Name Score
John 59
Bob 72

Next example uses {{nowrap}} where the end brackets become the wrap point. <style=max-width:Xem; will not work.

Code entered Output produced
{|class="wikitable sortable mw-collapsible" 
|+ {{nowrap|A longer table caption needs to wrap}} for cell phones, etc.
! Name !! Score
|-
| John || 59
|-
| Bob || 72
|}
A longer table caption needs to wrap for cell phones, etc.
Name Score
John 59
Bob 72

Sortable tables

[edit]

Collapsible tables can be combined with the sortable tables functionality without difficulty. However, because the hide/show button is placed with mw-collapsible in the right header cell, its positioning can look a bit peculiar if the cell is not wide enough:

Code entered Output produced
{|class="wikitable mw-collapsible sortable" style="width:5em"
<!--table width too narrow, on purpose here-->
|-
! Name !! Score
|-
| John || 59
|-
| Bob || 72
|}
Name Score
John 59
Bob 72

A possible alternative is to add a caption over the table. See the following example.

Code entered Output produced
{|class="wikitable sortable mw-collapsible" 
|+ class="nowrap" | Caption 
! Name !! Score
|-
| John || 59
|-
| Bob || 72
|}
Caption
Name Score
John 59
Bob 72

Limitations

[edit]
  • This functionality requires the end-user's browser to have JavaScript enabled. If JavaScript is disabled, the default behaviour is to show the content.
  • It doesn't work on mobile browsers (or desktop browsers in mobile mode) either.

See also

[edit]

Documentation:

Templates:

[edit]