W3C home > Mailing lists > Public > www-style@w3.org > February 2008

Re: [CSS21] visibility: collapse on non-table elements

From: Boris Zbarsky <bzbarsky@MIT.EDU>
Date: Thu, 14 Feb 2008 11:20:07 -0600
Message-ID: <47B47847.8090501@mit.edu>
To: fantasai <fantasai.lists@inkedblade.net>
CC: www-style@w3.org

fantasai wrote:
> I think smooth and efficient dynamic collapsing behavior makes
> sense outside of tables as well

While true, this seems like a rather far-reaching change to make to a 
specification that is already in CR.  In particular, the process document says[1]:

   "At this step, W3C believes the technical report is stable and
    appropriate for implementation. The technical report MAY still change
    based on implementation experience."

It doesn't seem like the issue being raised is a matter of implementation 
experience but rather of spec purity...

 > Specifically, block-level elements with "visibility: collapse" should
 > behave as if their box was zero height with zero vertical padding, border
 > width, and margins

There is an issue here (using both this formulation and even more your revised 
one).  It sounds like you want visibility:collapse to not affect the width of a 
block.  However, visibility inherits by default.  Therefore, given this markup:

<div style="float: left; border: 1px solid black">
   <span>Text</span>
   <table>
     <col><col>
     <tr>
       <td>One</td><td>Two</td>
     </tr>
   </table>
</div>

The <div> will end up 0px wide, since the <span> and both of the <col>s will 
have visibility:collapse and collapse horizontally.

Note that removing the <span> but keeping the text, or removing the <col> 
elements from the table, would change the rendering, because the text would not 
follow your inline collapsing rules and because table row and cell collapsing 
does not affect the table width (while column collapsing does at least in Gecko; 
Opera and Safari seem to not support column collapsing at all as far as I can 
tell).

Really, overloading visibility for the table collapsing behavior was a mistake, 
imo.  This isn't really something that should be done with an inherited 
property, and it already has issues with nested tables.  But again, I don't 
think this is something to be changed at this late stage in the game.

-Boris

[1] http://www.w3.org/2005/10/Process-20051014/tr.html#cfi
Received on Thursday, 14 February 2008 17:19:51 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:55:01 GMT