Help:Tables

From KnitWiki

Jump to: navigation, search

Tables may be authored in wiki pages using either HTML table elements directly, or using wikicode formatting to define the table. HTML table elements and their use are well described on various web pages and will not be discussed here. The benefit of wikicode is that the table is constructed of character symbols which tend to make it easier to perceive the table structure in the article editing view compared to HTML table elements.


A good general rule of thumb is to avoid using a table unless you need to. Table markup often complicates page editing.


Contents

Wiki table markup summary

 

{| start table
|+ table caption, optional; only one per table and between table start and first row
|- table row, optional on first row -- wiki engine assumes the first row
! table header cell, optional. Consecutive table headers may be added on same line separated by double marks !! or start on new lines, each with its own single mark !
table data cell, required! Consecutive table data cells may be added on same line separated by double marks || or start on new lines, each with its own single mark |
|} end table

 

  • The above marks must start on a new line except the double || and !! for optionally adding consecutive cells to a line.
  • XHTML attributes. Each mark, except table end, optionally accepts one or more XHTML attributes. Attributes must be on the same line as the mark. Separate attributes from each other with a single space.
  • Cells and caption (| or ||, ! or !!, and |+) hold content. So separate any attributes from content with a single pipe (|). Cell content may follow on same line or on following lines.
  • Table and row marks ({| and |-) do not directly hold content. Do not add pipe (|) after their optional attributes. If you erroneously add a pipe after attributes for the table mark or row mark the parser will delete it and your final attribute if it was touching the erroneous pipe!
  • Content may (a) follow its cell mark on the same line after any optional XHTML attributes or (b) on lines below the cell mark. Content that uses wiki markup that itself needs to start on a new line, such as lists, headers, or nested tables, must of course be on its own new line.

Simple table

Plain

The following table lacks borders and good spacing but shows the simplest wiki markup table structure

This code:

{|
|Orange
|Apple
|-
|Bread
|Pie
|-
|Butter
|Ice cream 
|}

Will create a plain table with two columns of text that looks like this:

Orange Apple
Bread Pie
Butter Ice cream


Alternative

For more table-ish looking wiki markup cells can be listed on one line separated by ||. This does not scale well for longer cell content such as paragraphs. It works well for short bits of content however, such as our example table.

Extra spaces within cells in the wiki markup can be added, as shown in the wiki markup below, to make the table easier to understand during editing but they do not effect the actual table rendering.

HTML attributes can be added to this table following the examples in other tables on this page but have been left out of the following example for simplicity.

This code:

{|
|  Orange    ||   Apple   ||   more
|-
|   Bread    ||   Pie     ||   more
|-
|   Butter   || Ice cream ||  and more
|}

Will create a table that looks pretty much like the last one:

Orange Apple more
Bread Pie more
Butter Ice cream and more


With HTML attributes

You can add HTML attributes to make your table look more attractive

border="1"

This code:

{|border="1"
|Orange
|Apple
|-
|Bread
|Pie
|-
|Butter
|Ice cream 
|}

Will create a table with a border:

Orange Apple
Bread Pie
Butter Ice cream


align="center" border="1"

The same code with the align="center" attribute added:

{|align="center" border="1"
|Orange
|Apple
|-
|Bread
|Pie
|-
|Butter
|Ice cream 
|}

Will create the same table, but it will be centered horizontally across the page:

Orange Apple
Bread Pie
Butter Ice cream


align="right" border="1"

You can put attributes in individual cells. Numbers, for example, may look better aligned right.

Cell attributes should be typed between pipes before the cell you want to apply them to.

This code:

{|border="1"
|Orange
|Apple
|align="right"|12,333.00
|-
|Bread
|Pie
|align="right"|500.00
|-
|Butter
|Ice cream
|align="right"|1.00
|}

Will create a table with some cells aligned to the right:

Orange Apple 12,333.00
Bread Pie 500.00
Butter Ice cream 1.00


You can put attributes on individual rows, too. Row attributes should go immediately after the "|-" code for creating a new row.

This code:

{| border="1"
|Orange
|Apple
|align="right"|12,333.00
|-
|Bread
|Pie
|align="right"|500.00
|- style="font-style:italic;color:green;"
|Butter
|Ice cream
|align="right"|1.00
|}

Will create a table like the one above, but with a whole row with green italic text:

Orange Apple 12,333.00
Bread Pie 500.00
Butter Ice cream 1.00


cellspacing="0" border="1"

You can also use the HTML cellspacing attribute to control the amount of space between borders.

This code:

{|cellspacing="20" border="1"
|Orange
|Apple
|-
|Bread
|Pie
|-
|Butter
|Ice cream 
|}

Will create a table with cellspacing of 20:

Orange Apple
Bread Pie
Butter Ice cream


cellpadding="20" cellspacing="0" border="1"

The cellpadding attribute can be used to control the amount of space within a cell.

This code:

{|cellpadding="20" cellspacing="0" border="1"
|Orange
|Apple
|-
|Bread
|Pie
|-
|Butter
|Ice cream 
|}

Will create a table with a cellpadding attribute of 20:

Orange Apple
Bread Pie
Butter Ice cream


With HTML attributes and CSS styles

CSS style attributes can be added with or without other HTML attributes

style="color:green;background-color:#ffffcc;" cellpadding="20" cellspacing="0" border="1"

To apply green text and a pale yellow background to the whole table, the style attribute is put at the very beginning of the table like this:

{|style="color:green;background-color:#ffffcc;" cellpadding="20" cellspacing="0" border="1"
|Orange
|Apple
|-
|Bread
|Pie
|-
|Butter
|Ice cream 
|}

This will create the following table with the same styling throughout:

Orange Apple
Bread Pie
Butter Ice cream


Table with TH headings

TH (HTML table headings) can be created by using ! instead of |. Headings usually show up bold and centered by default.

Top headings

Column Headings

To place headings across the top of your colums, put them in the first row, using an exclamation point intstead of a pipe to start each row like this:

{|border="1" cellpadding="20" cellspacing="0"
!Yummy
!Yummier
|-
|Orange
|Apple
|-
|Bread
|Pie
|-
|Butter
|Ice cream 
|}

This will create a bold heading for each column

Yummy Yummier
Orange Apple
Bread Pie
Butter Ice cream


Colspan="2"

If you prefer to have a single heading across the top of your table, use the colspan attribute in the first cell of the first row. Colspan should be set to the number of columns you would like your heading to cover:

{|border="1" cellpadding="20" cellspacing="0"
!colspan="2"|Yummies
|-
|Orange
|Apple
|-
|Bread
|Pie
|-
|Butter
|Ice cream 
|}


Yummies
Orange Apple
Bread Pie
Butter Ice cream


Side headings

Default

Create a column of headings down the left hand side of your table by making the first cell of each row a heading using !:

{|border="1" cellpadding="20" cellspacing="0"
!Fruit
|Orange
|Apple
|-
!Dish
|Bread
|Pie
|-
!Complement
|Butter
|Ice cream 
|}
Fruit Orange Apple
Dish Bread Pie
Complement Butter Ice cream


Right justify

Right justified side headings can be done by adding the align="right" attribute to each cell that contains a heading:

{|border="1" cellpadding="20" cellspacing="0"
!align="right" |Fruit
|Orange
|Apple
|-
!align="right" |Dish
|Bread
|Pie
|-
!align="right" |Complement
|Butter
|Ice cream 
|}
Fruit Orange Apple
Dish Bread Pie
Complement Butter Ice cream


Captions

A table caption can be added to the top of any table as follows:

{| border="1" cellpadding="20" cellspacing="0"
|+Food complements
|-
|Orange
|Apple
|-
|Bread
|Pie
|-
|Butter
|Ice cream 
|}


Food complements
Orange Apple
Bread Pie
Butter Ice cream


Attributes can also be added to the caption

{| border="1" cellpadding="20" cellspacing="0"
|+align="bottom" style="color:#e76700;"|''Food complements''
|-
|Orange
|Apple
|-
|Bread
|Pie
|-
|Butter
|Ice cream 
|}


Food complements
Orange Apple
Bread Pie
Butter Ice cream


Table with H1, H2, H3 etc. headings

HTML H1, H2, H3, H4 etc. headings can be created the standard wiki markup way with ==equal== signs and must be on a line all by themselves to work.

Preview the whole table. If you click on an edit tab for a heading within a table, edit, and preview, the parent table will display erroneously broken because part of it will be missing.

Keep the heading hierarchy consistent with the rest of the page so that the table of contents at page top works correctly.

{| border="1" cellpadding="20" cellspacing="0"
|colspan="2"|
===Yummiest===
|-
|Orange
|Apple
|-
|Bread
|Pie
|-
|Butter
|Ice cream 
|}

Yummiest

Orange Apple
Bread Pie
Butter Ice cream
Personal tools
Toolbox