- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Tue, 30 Mar 2010 23:39:20 -0700
- To: Boris Zbarsky <bzbarsky@MIT.EDU>
- CC: www-style list <www-style@w3.org>
On 03/30/2010 09:54 PM, Boris Zbarsky wrote: > On 3/30/10 12:44 PM, fantasai.lists@inkedblade.net wrote: >> 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 > > Er, yes. I clearly misread something.... Good catch! > > I just read through your proposal carefully again, and it seems to match > the behavior my proposal produces as far as I can tell. > > One remaining issue: with the modification to your definition of > consecutive boxes, at what point does the whitespace get dropped in the > > <div style="white-space: pre"> > <span style="display: table-cell">a</span> > <span style="display: table-cell">b</span> > </div> > > testcase? Right. Need a Step 1.4. Here's the proposal with all changes, let me know if it's correct: Replace the list of rules in 17.2.1 with the following: | For the purposes of these rules, the following terms are defined: | | row group box | A 'table-row-group', 'table-header-group', or 'table-footer-group' | proper table child | A 'table-row' box, row group box, 'table-column' box, 'table-column-group' | box, or 'table-caption-box'. | proper table row parent | A 'table' or 'inline-table' box or row group box | internal table box | A 'table-cell' box, 'table-row' box, row group box, 'table-column' box, | or 'table-column-group' box. | tabular container | A 'table-row' box or proper table row parent | 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 spaces. A sequence of sibling boxes is consecutive | if each box in the sequence is consecutive to the one before it in the | sequence. | | The following steps are performed in three stages. | | 1. Remove irrelevant boxes: | 1.1 All child boxes of a 'table-column' parent are treated as if | they had 'display: none'. | [new] | 1.2 If a child C of a 'table-column-group' parent is not a | 'table-column' box, then it is treated as if it had | 'display: none'. | [new] | 1.3 If a child C of a tabular container P is an anonymous inline box | that contains only white space, and its immediately preceding | and following siblings, if any, are proper table descendants of P | and are either 'table-caption' or internal table boxes, | then it is treated as if it had 'display: none'. | A box D is a proper table descendant of A if D can be a descendant | of A without causing the generation of any intervening 'table' or | 'inline-table' boxes. | [current rule 5, adjusted to match bz] | 1.4 If a box B is an anonymous inline containing only white space, and | it has two immediate siblings both of which are internal table boxes, | then it is treated as if it had 'display: none'. [new] | | 2. Generate missing child wrappers: | 2.1 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] | 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-row' box 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] | | 3. Generate missing parents: | 3.1 For each 'table-cell' box C in a sequence of consecutive internal | table and 'table-caption' siblings, if C's parent is not a | 'table-row' then generate an anonymous 'table-row' box around C | and all consecutive siblings of C that are 'table-cell' boxes. | [current rule 1] | 3.2 For each proper table child C in a sequence of consecutive proper | table children, if C is misparented then generate an anonymous | 'table' or 'inline-table' box T around C and all consecutive | siblings of C that are proper table children. (If C's parent is | an 'inline' box, then T must be an 'inline-table' box; otherwise | it must be a 'table' box.) | * A 'table-row' is misparented if its parent is neither | a row group box or a 'table' or 'inline-table' box. | * A 'table-column' box is misparented if its parent is neither | a 'table-column-group' box nor a 'table' or 'inline-table' box. | * A row group box, 'table-column-group' box, or 'table-caption' | box is misparented if its parent is neither a 'table' box nor | an 'inline-table' box. | [current rules 2, 3, 4] ~fantasai
Received on Wednesday, 31 March 2010 06:39:56 UTC