Jump to content

Wikipedia:NavFrame

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Patrick (talk | contribs) at 09:54, 28 May 2007 (Collapsible tables). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Documentation for dynamic navigation boxes.

Dynamic navigation boxes use a combination of CSS and Javascript to make collapsible navigation boxes. The technical parts comprise style sheet declarations in MediaWiki:Common.css, and Javascript code in MediaWiki:Common.js.

Example (click "show" or "hide" to see the good bits):

Soviet and post-Soviet armoured fighting vehicles after World War II
List of armoured fighting vehicles by country

How to use

With div, you can hide almost anything. There are three main classes: NavFrame, NavHead, NavContent.

The initial state is "show" with link "hide", except when there are more than two of these on a page. To control the initial state, use the method below instead (the content can be the element of a "table" with only one element).

Simple example

You will need to create three div elements:

<div class="NavFrame">
  <div class="NavHead">[... This is the title of your collapsible content ...]</div>
  <div class="NavContent">
    [... The content you want to hide goes here ...]
  </div>
</div>

Mixed classes example

You can even apply other classes along with these, making a more styled design rather than if you were to use the standard classes:

<div class="messagebox standard-talk NavFrame">
  <div class="somerandomclass NavHead">[... This is the title of your collapsible content ...]</div>
  <div class="NavContent anotherclass">
    [... The content you want to hide goes here ...]
  </div>
</div>

Collapsible tables

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 simpler to work with, as you merely need to add the collapsible to the table itself. For the [hide]/[show] link to appear, the table's first row must be a header row, i.e. begin (in wikisyntax) with an exclamation mark. The use of the class toccolours in the example below is merely for appearance; it is not needed for collapsible to function:

{| class="toccolours collapsible" width="60%"
!colspan="2"| Fun with table columns
|-
| Column 1 || Column 2
|}
Fun with table columns
Column 1 Column 2

One-element example, initially expanded:

Always displayed header
Optionally displayed text Optionally displayed text Optionally displayed text Optionally displayed text Optionally displayed text Optionally displayed text

Auto-collapsing tables

You have two choices of auto-collapse. In addition to the collapsible class, you can add either collapsed or autocollapse. The first always collapses a table. autocollapse only collapses a table if there are at least two collapsible tables on a page.

{| class="toccolours collapsible autocollapse" width=60%
|-
! colspan="2" | This autocollapse table will collapse because there are at least two collapsible tables on this page.
|-
| Column 1 || Column 2
|}
This autocollapse table will collapse because there are at least two collapsible tables on this page.
Column 1 Column 2
{| class="toccolours collapsible collapsed" width=60%
|-
! colspan="2" | This table will always collapse
|-
| Column 1 || Column 2
|}

One-element example, initially collapsed:

Sortable collapsible tables

initially expanded initially collapsed
numbers
name number
a 123
b 6
c 45

Limitations

Currently, the three Nav* classes apply styles of their own. When mixing classes, this causes some of the Nav styles to override other styles (in the above example, NavFrame is overriding the styles from .messagebox.standard-talk).

This limitation does not affect collapsible tables.

Accessibility

All browsers from Internet Explorer 5.5 and on (IE5.5/6/7, Firefox, Safari / KHTML, Opera 8/9, etc.) that support JavaScript will properly collapse the elements.

Internet Explorer 5 and browsers which do not support JavaScript will render the elements without the [hide/show] links and will not collapse them.

Templates

Navigation templates comparison
Template Collapsible Image Groups Style (body)
parameter/s
{{Navbox}} collapsible Left/right of body Yes Yes
{{Navbox with collapsible groups}} collapsible Left/right of body and/or in each list Yes Yes
{{Navbox with columns}} collapsible Left/right of columns No Yes
Collapsible attributes
Type CSS classes JavaScript Collapses when Custom
initial state
Nesting
Collapsible tables mw-collapsible jQuery.makeCollapsible 2 or more autocollapse on page Yes Yes