Re: I18N-ISSUE-164: Flexbox specifcation unclear on determination of flex item's baseline. [CSS3-flexbox]

On Thu, Jul 12, 2012 at 12:02 AM, Anton Prowse <prowse@moonhenge.net> wrote:
> This additional section looks good.  One thing that confused me slightly was
> the following new sentence:
>
>   # When determining the baseline of a table cell, a flex container
>   # provides a baseline just as a line box or table does. [CSS21]
>
> It took me a few moments to realized that it is referring to the following
> specific part of the CSS21 section that's linked to from that sentence (viz.
> 17.5.3):
>
>   # The baseline of a cell is the baseline of the first in-flow line
>   # box in the cell, or the first in-flow table-row in the cell,
>   # whichever comes first.
>
> The mental wheelspin that I had was caused by the use of the word "table" in
> the new sentence, given that the above-quoted part uses "table-row".

I'd call that a typo, actually.  Fixed to be "table-row".

> I was about to propose that we use "table-row" in the flexbox spec instead
> of "table"... but then it occurred to me that "table-row" is perhaps
> undesirable in CSS21 anyway; maybe it should be "table" and accompanied by
> the new note introduced in the new flexbox section (stating that the
> baseline of a table" is the baseline of its first row).
>
> Yet there's an open issue on what the baseline of a table with no rows
> is,[1] since that concept is needed for other parts of CSS21 as well; and we
> need a web compat review to figure out whether the baseline of a table with
> no rows plays any part in determining the baseline of a cell that contains
> it.  If not, we can't make any change to the CSS21 sentence and the flexbox
> sentence would have to change to use "table-row".
>
> [1] https://www.w3.org/Bugs/Public/show_bug.cgi?id=15892

We did an impromptu compat review in browsers.  Spoilers: it's inconsistent!

Actually, we're pretty sure the differing results are from Firefox
constructing an anonymous table-row and table-cell in the empty table
(even though the algorithm in the spec wouldn't create any).  It then
aligns that row as specified, while WebKit correctly skips over the
row-less table when trying to determine a baseline.  We'd need to
actually look at Gecko's code to be sure of this interpretation,
though.

Hopefully the inconsistency means we don't actually have to worry
about the answer, and can choose whichever one is more convenient.

~TJ

Received on Thursday, 12 July 2012 17:40:15 UTC