Re: [css21][css3-box] please define "block container element"

Le 30/03/2012 21:12, Kang-Hao (Kenny) Lu a écrit :
> This sentence is not precise in that it should include
> 'table'/'inline-table'. They generate block container boxes too: table
> wrapper boxes. Like 'list-item', not all the boxes they generate are
> block container boxes.

I didn’t think about table wrapper boxes. This is indeed more 
complicated than I thought.


> I did explain this after the tl;dr summary.

I’m sorry, this is my fault: I missed the part of your message after the 
first quote. (That is, most of it.) My message was clearly redundant.


>> >  Although there is no formal definition for this, I think it is
>> >  unambiguous that such elements are block container elements.
>> >
>> >  There is no mention of "block container" in the chapter on tables. But
>> >  other table boxes never have block-level or inline-level boxes in their
>> >  children (at least after the steps described in 17.2.1), so they can not
>> >  be "block containers".
> How do you interpret this part of 17.4 then?
>
>    # In both cases, the table generates a principal block box called the
>    # table wrapper box that contains the table box itself and any
>    # caption boxes (in document order).
>    # ...
>    # The table wrapper box is a 'block' box if the table is block-level,
>    # and an 'inline-block' box if the table is inline-level.
>
> The table wrapper box is clearly a "block container box" no matter
> whether the element is 'display: table;' or 'display: inline-table;'
> according to these sentences. Interestingly, your last paragraph is
> correct with regard to the definition of "table boxes". But then which
> element should be responsible for the table wrapper box?


The table wrapper box is indeed a block container, but the "real" table 
box is not. By "other table boxes" in my previous message I meant any 
other table-related box (ie: tables themselves, row groups, rows, column 
groups and columns) but missed the exception of table wrapper boxes.


To conclude: I don’t know whether elements with 'display: table' or 
'inline-table' should be "block container elements", but I don’t think 
it matters for 'overflow'. Overflow happens at box boundaries, so it 
could behave differently on various boxes created by the same element. 
(Eg: on table wrapper boxes but not on table boxes.)

For 'display: list-item', does overflow make sense on the list marker box?

Regards,
-- 
Simon Sapin

Received on Friday, 30 March 2012 19:50:19 UTC