User:0fret/sandbox

{{User sandbox}}

{{notice|The use of NavFrame for tables has been deprecated in favor of collapsible tables since September 2007. NavFrame is still useful for non-table content.}}

{{shortcut|WP:NAVFRAME}}

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):

{{WWIISovietAFVs}}

How to use

=NavFrame divs=

The basic concept here is to use the div element within a Wiki article's markup code to identify certain content (which we'll call the "details" here) that we want the user to be able to "show" or "hide". The markup code used to achieve this effect comprises three main classes: NavFrame, NavHead, NavContent.

The underlying implementation uses Javascript to add a "show" or "hide" link in the NavHead part, and to turn the visibility of the NavContent part on or off. In web browsers that do not support Javascript, or where Javascript is disabled, the content will always be displayed, and the "show"/"hide" links will not be present.

The default behavior of this code will initially "show" the details, as well as a link to "hide" the details. To reverse the default behavior, so that the details are initially hidden, use class="NavFrame collapsed" (instead of class="NavFrame") in the outer div element. Do not add style="display:none;" to the NavContent element, because that will make it impossible for users without Javascript to see the content.

==Simple example==

You will need to create three div elements:

To initially hide the content do this:

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

==Getting a caption instead of a heading==

If you swap the order of the two inner div elements, then you can get an always-visible caption below optionally-hidden content, instead of an always-visible heading above optionally-hidden content:

==If the title doesn't fit on one line==

If the title is too long, then the formatting is very bad:

To correct this, you need to add height: auto to the style of the NavHead div, and a dummy element to leave space for the "show/hide" link:

=Collapsible tables=

{{main|Help:Collapsing}}

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.

Left-alignment

To have things lined up to the left, add in this line of code style="text-align:left" to the first (or whichever)

you want the text inside aligned to the left.

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 (IE6/7/8, Firefox, Safari/Chrome/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