StarryGrandma (talk | contribs) →Other notes: Added example of table with caption - collapses to the the caption |
Matt Fitzpatrick (talk | contribs) →Simple example: headers are not required for mw-collapsible; stricter examples for layout table and data table |
||
Line 6: | Line 6: | ||
==Simple example== |
==Simple example== |
||
Tables are |
Tables are simple to make collapsible. Adding the <code>mw-collapsible</code> class to the table automatically positions the toggle and selects which parts to collapse. The use of the class <code>wikitable</code> in the examples below is merely for appearance; it is not needed for <code>mw-collapsible</code> to function. |
||
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. |
|||
{| class=wikitable style="width:80%;" align=center |
{| class=wikitable style="width:80%;" align=center |
||
Line 12: | Line 14: | ||
|- |
|- |
||
|width=50%|  |
|width=50%|  |
||
<nowiki>{| class="wikitable mw-collapsible" |
<nowiki>{| role="presentation" class="wikitable mw-collapsible" |
||
| <strong>Lorem ipsum</strong> |
|||
! Simple collapsible table |
|||
|- |
|- |
||
| Lorem ipsum dolor sit amet |
| Lorem ipsum dolor sit amet |
||
|}</nowiki> |
|}</nowiki> |
||
|style="width:50%; text-align:center;"| |
|style="width:50%; text-align:center;"| |
||
{| class="wikitable mw-collapsible" |
{| role="presentation" class="wikitable mw-collapsible" |
||
| <strong>Lorem ipsum</strong> |
|||
! Simple collapsible table |
|||
|- |
|- |
||
| Lorem ipsum dolor sit amet |
| Lorem ipsum dolor sit amet |
||
Line 25: | Line 27: | ||
|} |
|} |
||
More complex data tables can also be collapsible. |
|||
Using the syntax above, collapsible tables are often used to always display an introduction to, or summary of, a lengthy discussion or section of content, while hiding the majority of that content from immediate view. The summary message is put in the header cell, and the content is placed into the body cell. The content is then easily accessible by clicking the 'show' button. The collapsible functionality is also available in larger and more complicated tables, as long as there is a header cell in the first row of the table. |
|||
{| class=wikitable style="width:80%;" |
{| class="wikitable" style="width:80%;" |
||
!Code entered!!Output produced |
!Code entered!!Output produced |
||
|- |
|- |
||
|style="width:50%;"| |
|style="width:50%;"| |
||
<pre><nowiki> |
|||
{| class="wikitable mw-collapsible" |
|||
|+ Winter Olympic Games |
|||
|A normal cell in the header row |
|||
| |
|||
! colspan="2"| Header cell spans two cols |
|||
! scope="col" | City |
|||
! scope="col" | Country |
|||
|- |
|- |
||
! scope="row" | 1994 |
|||
| colspan="2" | Lorem ipsum dolor sit amet |
|||
| Lillehammer || Norway |
|||
| Separate body cell |
|||
|- |
|||
⚫ | |||
! scope="row" | 1998 |
|||
| Nagano || Japan |
|||
|} |
|||
⚫ | |||
|style="width:50%; text-align:center;"| |
|style="width:50%; text-align:center;"| |
||
{| class="wikitable mw-collapsible" |
{| class="wikitable mw-collapsible" |
||
|+ class="nowrap" | Winter Olympic Games |
|||
|width=33%|A normal cell in the header row |
|||
| |
|||
! colspan="2"| Header cell spans two cols |
|||
! scope="col" | City |
|||
! scope="col" | Country |
|||
|- |
|||
! scope="row" | 1994 |
|||
| Lillehammer || Norway |
|||
|- |
|- |
||
! scope="row" | 1998 |
|||
| colspan="2" | Lorem ipsum dolor sit amet |
|||
| Nagano || Japan |
|||
|width=33%| Separate body cell |
|||
|} |
|} |
||
|} |
|} |
Revision as of 06:09, 12 June 2017
Collapsible tables provide a way to collapse and uncollapse a table when a show/hide button is clicked. The code for this feature is found in the MediaWiki:Common.js.
The initial state of any collapsible content can be controlled using a "collapsible table", because it also allows a table with only one element with content, and a header.
Simple example
Tables are simple to make collapsible. Adding the mw-collapsible
class to the table automatically positions the toggle and selects which parts to collapse. The use of the class wikitable
in the examples below is merely for appearance; it is not needed for mw-collapsible
to function.
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.
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" |+ Winter Olympic Games | ! scope="col" | City ! scope="col" | Country |- ! scope="row" | 1994 | Lillehammer || Norway |- ! scope="row" | 1998 | Nagano || Japan |} |
|
Collapsing tables by default
Just using the mw-collapsible
class produces a table which is expanded by default, but can be collapsed by the reader. It is also possible to create tables which are collapsed by default, and can be optionally expanded. There are several methods for doing this, depending on the situations in which you want the table to collapse.
"collapsed"
Adding the mw-collapsed
class will cause the table 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 | ||||||
---|---|---|---|---|---|---|---|
{| class="wikitable mw-collapsible mw-collapsed" ! Simple collapsible table |- | Lorem ipsum dolor sit amet |} |
| ||||||
{| class="wikitable mw-collapsible mw-collapsed" |A normal cell in the header row ! colspan="2"| Header cell spans two cols |- | colspan="2" | Lorem ipsum dolor sit amet | Separate body cell |} |
|
"autocollapse"
Adding the autocollapse
class causes the table to collapse when there are 2 or more collapsible tables on the page (this threshold might be different on other projects). The example below, therefore, collapses because there are numerous collapsible tables on the page.
Code entered | Output produced | ||
---|---|---|---|
{| class="wikitable mw-collapsible autocollapse" ! Simple collapsible table |- | Lorem ipsum dolor sit amet |} |
|
"innercollapse" and "outercollapse"
Using this pair of classes, it is possible to make a table collapsed by default only when it is contained within a particular object, such as another table. This is mainly useful for tables inside templates, which are often nested.
Code entered | Output produced | ||||
---|---|---|---|---|---|
{| class="wikitable outercollapse" ! This table does not collapse |- | But the table inside this cell {| class="wikitable mw-collapsible innercollapse" ! Does collapse |- | Hiding this part |} |} |
|
Other notes
Tables with captions will collapse to the caption. Use {{nowrap}}to keep the caption from being fit into a tiny vertical column when the table is collapsed.
Code entered | Output produced | ||||||
---|---|---|---|---|---|---|---|
{|class="wikitable sortable mw-collapsible" |+ {{nowrap|Somewhat long table caption}} ! Name !! Score |- | John || 59 |- | Bob || 72 |} |
|
Sortable tables
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 first header cell located or 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 |} |
|
A possible alternative is to add a caption over the table. See the following example.
Code entered | Output produced | ||||||
---|---|---|---|---|---|---|---|
{|class="wikitable sortable mw-collapsible" |+ Caption ! Name !! Score |- | John || 59 |- | Bob || 72 |} |
|
Customization
Registered users can edit their personal js file to change some of the variables used.
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')
Other HTML elements
The code that performs the manipulation only checks for table elements, so these classes will not work for other elements, such as <div>
or <span>
. There is a similar feature for use with <div>
elements, called "NavFrame".
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.
See also
Documentation:
- Wikipedia:Manual of Style § Scrolling lists and collapsible content – style guidelines for collapsing content
- Help:Table
- Help:Table of contents
Templates:
- {{Collapse}}
- {{Collapse-top}} and {{Collapse-bottom}} – More feature-rich than {{collapse}}
- {{Hidden}}
- {{Navbar-collapsible}}