The style declarations contained within this page:
table {background: gray; width: 300px; border-collapse: separate;}
table td {background: #FEC; color: black; border: 1px solid red;}
.cl1 {empty-cells: show;}
.cl2, .cl3 {empty-cells: hide;}
.disappear {display:none;}
The empty cell in the middle of the following 'table' element should be rendered, including its background and borders.
| [cl1] | r1c2 | r1c3 |
| r2c1 | r2c3 | |
| r3c1 | r3c2 | r3c3 |
The empty cell in the middle of the following 'table' element should not be rendered at all. CSS2 says: A value of 'hide' means that no borders are drawn around empty cells.
However CSS2.1 is more explicit: A value of 'hide' means that no borders or backgrounds are drawn around/behind empty cells (see point 6 in 17.5.1)
- in the case of CSS2.1 (but not explicitly CSS2) the table background (here gray) should shine through. Opera V7.21 thus renders the following table sufficiently according to CSS2 but fails the stricter CSS2.1 criteria (Firebird 0.7+ is compliant to both):
| [cl2] | r1c2 | r1c3 |
| r2c1 | r2c3 | |
| r3c1 | r3c2 | r3c3 |
The second row in the following 'table' element, which contains only empty cells, should not be rendered at all. The table should be drawn as if the entire row had been set to 'display: none'.
| [cl3] | r1c2 | r1c3 |
| r3c1 | r3c2 | r3c3 |
Here is the table with the same row set to display:none - as you can see, Opera V7.21 (and Firebird 0.7+) FAILS to render the above table as it does the lower table, as they should according to EITHER CSS2 or CSS2.1:
| Test | r1c2 | r1c3 |
| r3c1 | r3c2 | r3c3 |