[CSS21] Proposal to remove special-case for row with all cells empty

CSS 2.1 currently has a special case in the definition of 'empty-cells' at
http://www.w3.org/TR/2006/WD-CSS21-20060411/tables.html#propdef-empty-cells :
# Furthermore, if all the cells in a row have a value of 'hide' and have
# no visible content, then the row has zero height and there is vertical
# border-spacing on only one side of the row.
which I mentioned in the message I just sent [1].

I propose that this exception be removed because:

 * I haven't found any implementations, although some implementations
   may appear to implement part of it due to bugs in their handling of
   empty-cells described in [1].  I tested the following implementations
   using the testcases:
     http://lists.w3.org/Archives/Public/www-archive/2006Jul/att-0007/empty-cells-2-standards.html
     http://lists.w3.org/Archives/Public/www-archive/2006Jul/att-0007/empty-cells-2-quirks.html

   + Internet Explorer 6.0.2900.2180
     'empty-cells' affects layout only in the vertical dimension and
     only in standards mode, but not just in the special case described
     above, which is a bug as explained in [1].  The removal of
     duplicate 'border-spacing' is also not implemented as required by
     the special case.

   + Firefox 1.5.0.4 (Linux) [Mozilla 1.8.0.4]
     'empty-cells' affects layout in all cases (not just the special
     case above), which is a bug as explained in [1].  The removal of
     duplicate 'border-spacing' is also not implemented as required by
     the special case, nor is the height caused by the 'padding' of the
     cells (from the cellpadding attribute) collapsed to zero.

   + Opera 9.00 (Linux)
     'empty-cells' does not appear to affect layout in any cases

   + Safari 1.3.2 (v. 312.6)
     'empty-cells' does not appear to affect layout in any cases

   + Konqueror 3.5.3-0.4fc5
     'empty-cells' does not appear to affect layout in any cases

 * It's a special case that requires a good bit of extra work to
   implement (checking if all the cells in a row are empty and treating
   the row differently).

 * I don't see what the use case for wanting this behavior is.

 * This behavior can lead to unexpected effects, such as a large border
   or padding value on a cell being ignored or not depending on the
   contents of other cells in a row.

-David

[1] http://lists.w3.org/Archives/Public/www-style/2006Jul/0050

-- 
L. David Baron                                <URL: http://dbaron.org/ >
           Technical Lead, Layout & CSS, Mozilla Corporation

Received on Tuesday, 11 July 2006 22:37:52 UTC