- From: Andrew Fedoniouk <news@terrainformatica.com>
- Date: Thu, 15 Apr 2010 20:58:34 -0700
- To: "Tab Atkins Jr." <jackalmage@gmail.com>, "L. David Baron" <dbaron@dbaron.org>
- Cc: "www-style list" <www-style@w3.org>
--------------------------------------------------
From: "Tab Atkins Jr." <jackalmage@gmail.com>
Sent: Thursday, April 15, 2010 12:47 PM
To: "L. David Baron" <dbaron@dbaron.org>
Cc: "www-style list" <www-style@w3.org>
Subject: Re: [css3-flexbox] Flexbox issues
> On Thu, Apr 15, 2010 at 12:41 PM, Tab Atkins Jr. <jackalmage@gmail.com>
> wrote:
>> On Thu, Apr 15, 2010 at 11:26 AM, Tab Atkins Jr. <jackalmage@gmail.com>
>> wrote:
>>> Separate issue!
>>>
>>> box-orient and box-lines appear to be part of the basic concept of
>>> "what type of flow model is this"? As well, it doesn't look like
>>> they'd ever be the sort of thing you might change on a box. You'll
>>> set them alongside the display:box declaration as an atomic unit.
>>> This suggests to me that these can be usefully combined together, and
>>> just expressed in the display value.
>>>
>>> Andrew happens to do this already, with his four values for flow,
>>> 'vertical', 'vertical-flow', 'horizontal', and 'horizontal-flow'. I'd
>>> probably use *-wrap for the wrapping versions, but whatever.
>>>
>>> The only problem with this is that Flexbox has *four* values for
>>> box-orient; two physical and two writing-mode-oriented. Are the
>>> latter two very important? Are they, or something similar, used in
>>> XUL currently?
>>
>> Additionally, how are box-direction and box-ordinal-group used in XUL?
>> Trying to get a feel for the actual use-cases for these features. I
>> wouldn't have come up with either of them if I was designing them on
>> my own. ^_^
>>
>
> box-flex-group too. You can fake this with flex units, if necessary,
> by just setting very large flex values on some elements, and ordinary
> flex values on other elements.
>
> ..one { width: 1000000fl; } .two { width: 1fl; }
>
> should act virtually identical to:
>
> ..one { box-flex: 1; box-flex-group: 1; } .two { box-flex: 1;
> box-flex-group: 2; }
>
> Is this commonly used in XUL things? If so, are more than two levels
> commonly used? If it's very rare to use more than two levels, I think
> I'd be fine with the "very large flex" hack, but not if it was somehow
> common for there to be 3 or more groups.
>
Flex box groups are, indeed, very hard to understand and so to use right.
In practice people use percents with flexes.
For these rules:
.container { width:800px; flow:horizontal; }
.container > .one { width: 50%; }
.container > .two { width: 3*; }
.container > .three { width: 1*; }
You will have these widths:
.one - 400 px,
.two - 300 px,
.three - 100px.
Percents and lengths are computed before flexes so you will
have two levels of flexibility. That is sufficient, practice shows.
(To be precise: flexes define distribution of space left after percents and
lengths computation).
--
Andrew Fedoniouk
http://terrainformatica.com
Received on Friday, 16 April 2010 03:59:05 UTC