W3C home > Mailing lists > Public > www-style@w3.org > July 2012

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

From: Anton Prowse <prowse@moonhenge.net>
Date: Sun, 15 Jul 2012 18:10:33 +0200
Message-ID: <5002EB79.4010804@moonhenge.net>
To: www-style@w3.org
CC: "Tab Atkins Jr." <jackalmage@gmail.com>
On 12/07/2012 20:32, Anton Prowse wrote:
> On 12/07/2012 19:39, Tab Atkins Jr. wrote:
>> 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".
>
> Ah, cool.  Thanks!
>
>>> 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!

The test used is described in [2] and indicates the following: Webkit 
and Trident do not use the rowless table to determine the cell's 
baseline, whereas Gecko uses the bottom of the table and Presto 
bizarrely uses the top of the table.  (Boris Zbarsky thinks that Gecko's 
behaviour is merely a bug, though.[3])

So indeed it's inconsistent, but it seems unlikely we want to change 
cell baseline determination rules in CSS21 since two implementations 
currently obey them as specified.  Hence fixing the typo in css3-flexbox 
is the way to go.


Still, while we're on the subject, the flexbox spec does need to define 
the baseline of a block-level table with no rows, else baseline 
alignment of flex items isn't well-defined.


[2] https://www.w3.org/Bugs/Public/show_bug.cgi?id=15892#c5
[3] https://www.w3.org/Bugs/Public/show_bug.cgi?id=15892#c6

Cheers,
Anton Prowse
http://dev.moonhenge.net
Received on Sunday, 15 July 2012 16:11:02 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:56 GMT