Help:Collapsing tables and more

{{Short description|Wikipedia project page}}

{{table help}}

{{About|how to collapse content when editing Wikipedia pages|the Manual of Style on collapsing content|MOS:COLLAPSE}}

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

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.

class=wikitable style="width:80%;"

!Code entered!!Output produced

style="width:50%;"|

{| role="presentation" class="wikitable mw-collapsible"

| Lorem ipsum

Lorem ipsum dolor sit amet

|style="width:50%;"|

role="presentation" class="wikitable mw-collapsible"

| Lorem ipsum

Lorem ipsum dolor sit amet

|}

More complex data tables can also be collapsible.

class="wikitable" style="width:80%;"

!Code entered!!Output produced

style="width:50%;"|

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

|style="width:50%;"|

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

|}

Collapsing by default

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"=

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

class=wikitable style="width:80%;" align=center

!Code entered!!Output produced

style="width:50%;"|

{| role="presentation" class="wikitable mw-collapsible mw-collapsed"

| Lorem ipsum

Lorem ipsum dolor sit amet

|style="width:50%;"|

role="presentation" class="wikitable mw-collapsible mw-collapsed"

| Lorem ipsum

Lorem ipsum dolor sit amet

|-

|style="width:50%;"|

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

|style="width:50%;"|

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

|}

="autocollapse"=

{{hatnote|Using this technique causes the page to reflow/jump around and should generally be avoided.}}

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.

class=wikitable style="width:80%;" align=center

!Code entered!!Output produced

style="width:50%;"|

{| role="presentation" class="wikitable mw-collapsible autocollapse"

| Lorem ipsum

Lorem ipsum dolor sit amet

|style="width:50%;"|

role="presentation" class="wikitable mw-collapsible autocollapse"

| Lorem ipsum

Lorem ipsum dolor sit amet

|}

="innercollapse" and "outercollapse"=

{{hatnote|Using this technique causes the page to reflow/jump around and should generally be avoided.}}

Using this pair of classes, it is possible to make an element collapsed by default only when it is {{em|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.

class=wikitable style="width:80%;" align=center

!Code entered!!Output produced

style="width:50%;"|

{| role="presentation" class="wikitable mw-collapsible innercollapse"

| This innercollapse element is

uncollapsed by default

This is an element with the outercollapse class.

role="presentation" class="wikitable mw-collapsible innercollapse"

| This innercollapse element is

collapsed by default

|style="width:50%;"|

role="presentation" class="wikitable mw-collapsible innercollapse"

| This innercollapse element is

uncollapsed by default

This is an element with the outercollapse class.

role="presentation" class="wikitable mw-collapsible innercollapse"

| This innercollapse element is

collapsed by default

|}

Other notes

=Tables with captions=

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 {{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%"
scope="col" width="60%"|Code entered

!scope="col" width="40%"|Output produced

width="60%"|

{|class="wikitable sortable mw-collapsible"

|+ class="nowrap" | Somewhat long table caption

! Name !! Score

John59
Bob72

|width="40%"|

class="wikitable sortable mw-collapsible"

|+ class="nowrap" | Somewhat long table caption

! Name !! Score

John59
Bob72

|}

Next example uses {{tlx|nowrap}} where the end brackets become the wrap point. will not work.

class="wikitable" style="margin:0.5em auto;width:80%"
scope="col" width="60%"|Code entered

!scope="col" width="40%"|Output produced

width="60%"|

{|class="wikitable sortable mw-collapsible"

|+ {{nowrap|A longer table caption needs to wrap}} for cell phones, etc.

! Name !! Score

John59
Bob72

|width="40%"|

class="wikitable sortable mw-collapsible"

|+ {{nowrap|A longer table caption needs to wrap}} for cell phones, etc.

! Name !! Score

John59
Bob72

|}

=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 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%"
scope="col" width="60%"|Code entered

!scope="col" width="40%"|Output produced

width="60%"|

{|class="wikitable mw-collapsible sortable" style="width:5em"

NameScore
John59
Bob72

|width="40%"|

class="wikitable sortable mw-collapsible" style="width:5em"

NameScore
John59
Bob72

|}

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

class="wikitable" style="margin:0.5em auto;width:80%"
scope="col" width="60%"|Code entered

!scope="col" width="40%"|Output produced

width="60%"|

{|class="wikitable sortable mw-collapsible"

|+ class="nowrap" | Caption

! Name !! Score

John59
Bob72

|width="40%"|

class="wikitable sortable mw-collapsible"

|+ class="nowrap" | Caption

! Name !! Score

John59
Bob72

|}

=Limitations=

  • This functionality requires the end-user's browser to have JavaScript enabled. If JavaScript is disabled, the default behavior is to show the content.

See also

Documentation:

  • {{Section link|Wikipedia:Manual of Style|Scrolling lists and collapsible content}} – style guidelines for collapsing content
  • Help:Table
  • Help:Table of contents

Templates:

  • {{clc|Collapse templates}}