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

Re: Multiple baseline question

From: Julien Chaffraix <julien.chaffraix@gmail.com>
Date: Tue, 24 Jul 2012 09:01:05 -0700
Message-ID: <CAGY_oHJemFhs7M56KZhRvF4H6JaU0WQc1zOwxoANQocUhuTz8A@mail.gmail.com>
To: Anton Prowse <prowse@moonhenge.net>
Cc: www-style@w3.org, "L. David Baron" <dbaron@dbaron.org>, robert@webkit.org
On Mon, Jul 23, 2012 at 11:57 PM, Anton Prowse <prowse@moonhenge.net> wrote:
> On 24/07/2012 02:27, L. David Baron wrote:
>> On Monday 2012-07-23 17:11 -0700, L. David Baron wrote:
>>> On Monday 2012-07-23 16:32 -0700, Julien Chaffraix wrote:
>>>> I have a question about the attached test-case. This is question
>>>> related to a recent change in WebKit where we aligned our table
>>>> baseline computation with CSS 2.1 but changed the output of the test.
>>>> Longer context can be found here:
>>>> https://bugs.webkit.org/show_bug.cgi?id=91137
>>>> Browsers don't agree on the exact behavior in this case:
>>>> * WebKit (after the change) / Opera don't horizontally align the 2
>>>> rectangles.
>>>> * WebKit (before the change) / FF and IE align them.
>>>> The current line of thoughts is that the 2 inline-blocks shouldn't be
>>>> vertically aligned:
>>>> * We align the 2 inline-blocks along their baseline as vertical-align
>>>> defaults to 'baseline'.
>>>> * "The baseline of an 'inline-block' is the baseline of its last line
>>>> box in the normal flow", which means that the inline-block baseline is
>>>> the anonymous inline-table's.
>>>> * "The baseline of an 'inline-table' is the baseline of the first row
>>>> of the table."
>>>> * "If a row has no cell box aligned to its baseline, the baseline of
>>>> that row is the bottom content edge of the lowest cell in the row.",
>>>> the only table cell's has vertical-align: middle so the baseline of
>>>> the row is the bottom of the content edge.
>> The flaw in your reasoning above is that there is an 'inline-table'
>> at all.  The anonymous box generation algorithm should produce a
>> 'table' since the parent is not display:inline.

Ah, good catch. I misread the spec and thought we would need to
generate an 'inline-table' wrapper in any inline formatting context.

>> That said, I'm not sure what the baseline of an inline-block
>> containing only a table is supposed to be.
> ... which is related to (and possibly a sub-problem of) the problem that we
> don't know what the baseline of a table is.  The flexbox spec now contains
> the following Note:
>   # CSS 2.1 did not define the baseline of block or table boxes. It is
>   # expected that they will be defined consistent with those of table
>   # cells, as follows:
>   #
>   # [...]
>   #
>   # ‘table’
>   #     The inline-axis baseline of a table box is the baseline of its
>   #     first row.

I don't know what the baseline of a table would be either but authors
seem to be expecting that the 2 blocks are aligned (ie we would align
the cell's first line boxes) [1]. This doesn't match what the flexbox
spec is saying as it would align the cell's bottom content edge in the
example due to the vertical-align: middle property on the table cell.


[1] Or at least they consider WebKit's behavioral change to be a
regression: http://code.google.com/p/chromium/issues/detail?id=136505
Received on Tuesday, 24 July 2012 16:01:57 UTC

This archive was generated by hypermail 2.4.0 : Monday, 23 January 2023 02:14:17 UTC