Re: [css3-flexbox] overflow property

(12/05/13 17:44), Anton Prowse wrote:
> I think this was the right call; after all, the things it contains are
> not blocks.  The more awkward bit was the flexbox /items/ where we
> don't know if they're going to be BFCs or flexbox FCs, and so the
> spec is intentionally vague there, which again I think is also the
> right call.

Instead of making it vague, what is the problem by saying

  | Additionally, each of the flexbox items establishes a new block
  | formatting context for its contents, unless it establishes a
  | flexbox formatting context or it's a box of display 'table'
  | (meaning that it establishes a "table formatting context").

instead of the current wording

  # Additionally, each of the flexbox items establishes a new
  # formatting context for its contents.

(By the way, typo here: s/new/new block/)

(12/05/13 17:44), Anton Prowse wrote:
> It might be pragmatic to define flexbox containers (and flexbox items)
> to be block containers merely to opt into things like 'overflow' -- but
> I don't think it's very sound architecture. 

Me neither. Specifically, there are some statements in CSS 2.1 that
become either very vague or contradicted if you say a flexbox container
is a block container. Say, with

  # A block container box either contains only block-level boxes or
  # establishes an inline formatting context and thus contains only
  # inline-level boxes.

, we'll need to ask the spec to say a flexbox item is a block-level box
and so on, which seems very unnecessary and error-prone.

> Rather, I think you should add a section to css3-flexbox stating that
> 'overflow' applies to flexbox containers and flexbox items.  Other
> new box types in other specs might need to do the same.

I think extending Chapter 3 with several sentences in this regard is
what we need. So, similarly, you might want to amend

  # The first line of a table-cell or inline-block cannot be the first
  # formatted line of an ancestor element. Thus, in <DIV><P
  # STYLE="display: inline-block">Hello<BR>Goodbye</P> etcetera</DIV>
  # the first formatted line of the DIV is not the line "Hello".

and

  # bidi-override
  #
  # For inline elements this creates an override. For block container
  # elements this creates an override for inline-level descendants not
  # within another block container element.

(though I guess this one is already buggy with anonymous 'table-cell'.)

. I think these are pretty much all the block container-related things
last time I want to figure out if 'table' is a block container...



Cheers,
Kenny

Received on Sunday, 13 May 2012 10:42:16 UTC