Re: [csswg-drafts] [css-display] Make 'flow-root' an independent keyword

This table is more clear. A blockification or inlinification is just a change of column.

<table>
  <thead>
    <tr>
      <td colspan="2"></td>
      <th>Block-level</th>
      <th>Inline-level</th>
      <th>Run-in</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th rowspan="3">Flow-loose</th>
      <td>Full</td>
      <td><code>block flow-loose</code></td>
      <td><code>inline flow-loose</code></td>
      <td><code>run-in flow-loose</code></td>
    </tr>
    <tr>
      <td>Short</td>
      <td><code>flow-loose</code></td>
      <td><code>inline</code></td>
      <td><code>run-in</code></td>
    </tr>
    <tr>
      <td>Box</td>
      <td>block-level block container</td>
      <td>inline box</td>
      <td>run-in inline box</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <th rowspan="3">Flow-tight</th>
      <td>Full</td>
      <td><code>block flow-tight</code></td>
      <td><code>inline flow-tight</code></td>
      <td><code>run-in flow-tight</code></td>
    </tr>
    <tr>
      <td>Short</td>
      <td><code>block</code> (synonym: <code>flow-tight</code>)</td>
      <td><code>inline-block</code></td>
      <td><code>run-in flow-tight</code></td>
    </tr>
    <tr>
      <td>Box</td>
      <td>block-level block container</td>
      <td>inline-level block container (with BFC)</td>
      <td>run-in block container (with BFC)</td>
    </tr>
  </tbody>
  <tbody>
    <tr>
      <th rowspan="3">Flow-root</th>
      <td>Full</td>
      <td><code>block flow-root</code></td>
      <td><code>inline flow-root</code></td>
      <td><code>run-in flow-root</code></td>
    </tr>
    <tr>
      <td>Short</td>
      <td><code>flow-root</code></td>
      <td><code>inline flow-root</code></td>
      <td><code>run-in flow-root</code></td>
    </tr>
    <tr>
      <td>Box</td>
      <td>block-level block container with BFC</td>
      <td>inline-level block container (with BFC)</td>
      <td>run-in block container (with BFC)</td>
    </tr>
  </tbody>
</table>

With this I don't think we need an `auto` inner type in order to decide between `flow-loose` and `flow-tight` when no inner type is specified. When no outer type is specified, the default also depends on whether the inner one is ruby or not, and no `auto` outer type is needed neither.

About the names, I think `flow-block` would be a better name for `flow-tight`, because it's the default for *block* containers like <code><i>block</i></code> or <code>inline-<i>block</i></code>.

Analogously, `flow-inline` might work for `flow-loose`, but generating a block container in the block-level case seems strange with that name. So I would prefer something like `flow-adapt`, because it adapts to the outer type, producing different kinds of boxes. Or maybe leave it as `flow-loose` or just `flow`. Probably someone else has better ideas.

About ruby, maybe add a new inner type called `ruby-root`, that behaves like `ruby` but makes the principal box establish a BFC. And say that "becoming a formatting context" transforms a `ruby` inner type to `ruby-root`, just like `flow-loose` and `flow-tight` are changed to `flow-root`.

-- 
GitHub Notification of comment by Loirooriol
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/1496#issuecomment-306000127 using your GitHub account

Received on Saturday, 3 June 2017 20:40:00 UTC