[csswg-drafts] [css-display] 'flow' inner display type should never establish a BFC

Loirooriol has just created a new issue for https://github.com/w3c/csswg-drafts:

== [css-display] 'flow' inner display type should never establish a BFC ==
The [`flow`](https://drafts.csswg.org/css-display-3/#valdef-display-flow) inner display type is completely overloaded, it can generate 4 (!!!) different kinds of boxes: inline box, block container that establishes inline FC, block container that integrates into the parent BFC, or block container that establishes BFC.

So I propose that `flow` never establishes a BFC. Instead, all cases which require a BFC are handled by switching the inner display type to `flow-root` at used value time via [becoming a formatting context](https://drafts.csswg.org/css-display-3/#becoming-formatting-context). This would disentangle `flow` and `flow-root`. This change should have no effect in practice.

Something like this:

> **`flow`**
> 
> If its [outer display type](https://drafts.csswg.org/css-display-3/#outer-display-type) is [`inline`](https://drafts.csswg.org/css-display-3/#valdef-display-inline) or [`run-in`](https://drafts.csswg.org/css-display-3/#valdef-display-run-in), and it is participating in a block or inline formatting context, then it generates an [inline box](https://drafts.csswg.org/css-display-3/#inline-box).
> 
> Otherwise it generates a [block container](https://drafts.csswg.org/css-display-3/#block-container) box and integrates its contents into its parent [block formatting context](https://drafts.csswg.org/css-display-3/#block-formatting-context).
> 
> Note: certain circumstances, such as if the block container does not participate in a block formatting context, require the element to [become a formatting context](https://drafts.csswg.org/css-display-3/#becoming-formatting-context), and thus its [inner display type](https://drafts.csswg.org/css-display-3/#inner-display-type) is changed to [`flow-root`](https://drafts.csswg.org/css-display-3/#valdef-display-flow-root).

And in [Becoming a formatting context](https://drafts.csswg.org/css-display-3/#becoming-formatting-context) list these triggers:

 - Block containers that are not block boxes
 - Out-of-flow
 - `overflow` applies and is different than visible
 - The root element

Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/1550 using your GitHub account

Received on Thursday, 22 June 2017 15:48:54 UTC