Table caption
1st col. & row2nd col. thead3rd col.4th col.5th col.
2nd rowtheadabcdabcdabcd
5th rowtfootabc
3rd rowtbodyabcabcabc
4th rowtbodyababab
Column alignment
Row alignment
Table alignment


Note 1
Cell alignment


Note 2
Rules





Note 3
Frame      
   



Table border
Cell border
Cellspacing
Caption position and alignment
Caption side
Alignment
Table direction
Row visibility
RowVisibleCollapse
1st row
2nd row
3rd row
4th row
5th row
Note 4
Rowgroups visibility
RowgroupVisibleCollapse
THead
TBody
TFoot

W3C HTML 4.01,
Section 11.3 Table formatting by visual user agents
11.3.2 Horizontal and vertical alignment
Inheritance of alignment specifications

"The default alignment for cells depends on the user agent. However, user agents should substitute the default attribute for the current directionality (i.e., not just 'left' in all cases)."

If you insert the "direction: rtl;" css rule to the body or html tag of this file, you'll see that not only the text is formatted from right to left but the horizontal alignment formating is right aligned as well.

W3C CSS level 1,
Section 4 Formatting model
4.1.2 Horizontal formatting

"(...) if both 'margin-left' and 'margin-right' are 'auto', they will be set to equal values. This will center the element inside its parent."

W3C CSS level 2.1,
Section 10 Visual formatting model details
10.3.3 Block-level, non-replaced elements in normal flow

"If both 'margin-left' and 'margin-right' are 'auto', their used values are equal. This horizontally centers the element with respect to the edges of the containing block."

Most people embed a table within a <div style="text-align: center;">; not only the table is centered but the content of <td>s is also align-centered. Many people misuse <[block-level element] style="text-align: center;"> to center nested elements while the original purpose of text-align:center is to center the text within.

Further reading on this precise issue:
Centering: Auto-width Margins at BLUEROBOT.COM site!

Note 3: Rules attribute values groups, cols, rows should only be rendered when in border-collapse: collapse model.
"In this model [border-collapse: separate model], (...) Rows, columns, row groups, and column groups cannot have borders (i.e., user agents must ignore the border properties for those elements). (...) In the collapsing border model, it is possible to specify borders that surround all or part of a cell, row, row group, column, and column group. Borders for HTML's 'rules' attribute can be specified this way."
CSS 2, Section 17.6.1 The separated borders model (border-collapse)
CSS 2.1, Section 17.6.1 The separated borders model (border-collapse)

Note 4: there is a bug in Opera 7.x involving logical versus document order of rows which will affect the working of this DHTML for the last 3 rows.

Incompatibilities and bugs in this page

Internet Explorer 6 and Internet Explorer 7 have many many bugs
The css property border-spacing is not supported by MSIE 6.
Internet Explorer 6 and Internet Explorer 7 should NOT render rules="cols|rows|groups" when border-collapse is separate. CSS 2.x is decisively clear on this precise matter.
In Mozilla-based browsers and in Opera 7.x, borders collapse when rules="all" is declared (Bug 155507 target: Future)
border collapse doesn't work when visibility: collapse is active (Bug 242997)
visibility: collapse causes incorrect overflow area to be reported (Bug 242998)
HTMLCollection of RefTable.rows[] sequential order should be according to the display (logical) order, not document order (bug 125284 in Opera's BTS)
HTMLCollection of RefTable.rows[] sequential order should be according to the display (logical) order, not document order in Safari and Konqueror: rows in footer must be last in rows HTMLCollection regardless of document order (bug 4571 at WebKit Bugzilla)
[BC] border styles not updated properly after changed via DOM.(Bug 258377)

Remaining to do:

Valid HTML 4.01! CSS compliant Web standards project