Re: [CSS21] Proposal for a replacement for section 17.2.1 (table anonymous objects)

On 03/29/2010 11:36 PM, Boris Zbarsky wrote:
> On 3/30/10 2:00 AM, fantasai wrote:
>> Hmm, yeah. the rules in step 2 are backward. Try this?
>>
>> | 2. Generate missing child wrappers:
>> | 2.1 If a child C of a tabular container is not a 'table-cell',
>> | then generate an anonymous 'table-cell' box around C and all
>> | consecutive siblings of C that are not 'table-cell' boxes.
>> | [current rule 8]
>> | 2.2 If a child C of a row group box is not a 'table-row' box, then
>> | generate an anonymous 'table-row' box around C and all consecutive
>> | siblings of C that are not 'table-row' boxes.
>> | [current rule 7]
>> | 2.3 If a child C of a 'table' or 'inline-table' box is not a proper
>> | table child, then generate an anonymous 'table-row' box around C
>> | and all consecutive siblings of C that are not proper table children.
>> | [current rule 6]
> 
> That doesn't quite work. Consider: ...

Ah, right. *rereads stuff a few times* Um. Remind me again why my original
proposal doesn't handle Item 2 of 
  http://lists.w3.org/Archives/Public/www-style/2009May/0213.html
?

Step 1:   Leading and trailing white space in the table <div> is removed.
Step 2.1: The entire contents of the table is wrapped in a table row.
Step 2.2: Nothing happens
Step 2.3: The middle <div> is wrapped in a table cell.
Step 3:   Nothing happens.
Result:   1 table, 1 row, 3 cells

http://lists.w3.org/Archives/Public/www-style/2010Mar/0489.html

> For what it's worth, I haven't sat down and proved this, ...

Ok, well, until you prove this, I'm going to keep hacking at the wording
here to try to get it right. :)

>> Change
>> | consecutive
>> | Two sibling boxes are consecutive if they are both in flow and have
no
>> | intervening in-flow siblings.
>> to
>> | consecutive
>> | Two sibling boxes are consecutive if they are both in flow and have
no
>> | intervening in-flow siblings other than, optionally, an anonymous 
>> inline
>> | containing only white space.
> 
> Will there always be only one anonymous inline in the situation above? 
> Even if the preformatted whitespace contains linebreaks?
> 
> If so, sounds fine. If not, then we should allow zero or more such
inlines.

There's only one inline. It may be broken into multiple boxes across lines
once line-breaking is factored in, but it's still a single inline.

(I don't think we have a term to distinguish between broken box parts and
the logical box itself. But they are distinct concepts.)

~fantasai

Received on Tuesday, 30 March 2010 16:44:35 UTC