- From: Daniel Holbert <dholbert@mozilla.com>
- Date: Sun, 18 Jan 2015 09:11:35 -0800
- To: Glen Huang <curvedmark@gmail.com>, www-style list <www-style@w3.org>
I think the "page-break-before" property should already provide this
behavior, as described here:
http://dev.w3.org/csswg/css-flexbox-1/#algo-line-break
(However I'm not sure where this is implemented. I know Gecko/Firefox
supports "page-break-before" (& -after) in this context, but one of my
testcases [1] seems to show that it doesn't work in IE 11 or Chrome 41.
Testcase URL:
https://mxr.mozilla.org/mozilla-central/source/layout/reftests/w3c-css/submitted/flexbox/flexbox-break-request-horiz-001a.html
Should look like:
https://mxr.mozilla.org/mozilla-central/source/layout/reftests/w3c-css/submitted/flexbox/flexbox-break-request-horiz-001-ref.html
)
On 01/17/2015 08:44 PM, Glen Huang wrote:
> Currently, whether a new flex line should be created in a multi-line
> flex container is controlled by the flex container’s width and flex
> item’s width (in the case where the main axis is horizontal, but vice
> versa).
>
> I’d like to propose an property to let users explicitly specify that.
> The main use case is for definition lists.
>
> ```
> <dl>
> <dt>Very Long Term</dt>
> <dd>Description</dd>
> <dt>Term</dt>
> <dd>Description</dd>
> <dt>Term</dt>
> <dd>Very Long Description</dd>
> </dl>
> ```
>
> The goal is to have the browser render it like this:
>
> ```
> - - - - - - - - - - - - - - -
> Very Long Term Description
> Term Description
> Term Very Long Description
> - - - - - - - - - - - - - - -
> ```
>
> If I’m not wrong, this is currently impossible to do with flex layout.
> So I’m proposing a property that works very much like what `clear` does
> to floats.
>
> Actually, I think `clear` can be reused:
>
> ```
> clear: previous
> clear: next
> ```
>
> It applies to flex items, and what it does is that it prevents the flex
> item’s previous or next flex items to be in the same flex line.
>
> So to render the previous definition list, css could be something like:
>
> ```
> dl {
> display: flex;
> flex-flow: row wrap;
> }
> dd {
> margin-left: auto;
> clear: next;
> }
> ```
>
> And even better, it could nicely render multiple `dd`s:
>
> ```
> <dl>
> <dt>Very Long Term</dt>
> <dd>Description</dd>
> <dd>Another Description</dd>
> <dt>Term</dt>
> <dd>Description</dd>
> </dl>
> ```
>
> ```
> - - - - - - - - - - - - - - -
> Very Long Term Description
> Another Description
> Term Description
> - - - - - - - - - - - - - - -
> ```
>
> Any ideas?
>
>
Received on Sunday, 18 January 2015 17:12:12 UTC