- From: Andrew Fedoniouk <andrew.fedoniouk@live.com>
- Date: Thu, 3 Feb 2011 23:22:21 -0800
- To: "Tab Atkins Jr." <jackalmage@gmail.com>, "Mikko Rantalainen" <mikko.rantalainen@peda.net>
- Cc: "www-style list" <www-style@w3.org>
>-----Original Message-----
>From: Tab Atkins Jr.
>Sent: Thursday, February 03, 2011 10:46 AM
>To: Mikko Rantalainen
>Cc: www-style list
>Subject: Re: [css3-flexbox] Trying out flex units again
>
>On Thu, Feb 3, 2011 at 3:05 AM, Mikko Rantalainen
><mikko.rantalainen@peda.net> wrote:
>> I believe that separating the display model and flow (layout) would be
>> beneficial. I find Andrew's design a bit simpler (as much as I
>> understand it) and he seems to be able to do it with less features added
>> to current CSS specification.
>>
>> Perhaps all that we need is some kind of mapping from latest flexbox
>> spec to Andrews design. Then we can get all people speaking about the
>> same thing, hopefully. It currently seems to me that Andrew's design has
>> not been considered fully because some details are lacking (Andrew
>> understands those details, nobody else does).
>
>I agree that splitting out the various concepts currently bashed
>together in the 'display' property is sensical. I don't agree with
>Andrew's particular method of separating them. For example, I can't
>imagine what a "flow:radial; display:table;" layout would even look
>like - tables and pie menus have two fundamentally different methods
>of laying out descendants. The two notions should be in the same
>category (layout managers) and be mutually exclusive on a single
>element.
>
Ok, let me try to explain from other perspective. Mathematical topology
this time :)
The 'display' defines topology[1] of elements - relation of
elements that will be preserved in different transformations
of the system.
The 'flow' defines the "transformation" - particular layout of
system of elements.
Consider this table:
<table #clockface>
<tr><td>1</td><td>I</td></tr>
<tr><td>2</td><td>II</td></tr>
<tr><td>3</td><td>III</td></tr>
<tr><td>4</td><td>IV</td></tr>
...
</table>
And this rendering:
http://terrainformatica.com/w3/flow-radial.png
with this style:
table#clockface
{
display:table;
flow: radial(direction:cw, start:0deg);
margin-right:34px;
}
table#clockface td:nth-child(2)
{
background:yellow;
}
As you see flow: radial preserves topology of display:table -
you have rows there. Each row have two cells. Cells are still selectable
by td:nth-child(1), td:nth-child(2)
And let's take display:block...
display:block for some element requires that
next and previous its siblings have to be blocks too.
Otherwise, if siblings are text nodes, they should be
wrapped into "anonymous blocks/boxes".
Next and previous are [topo-]logical terms so
display:block is a definition of local topology :)
But as we easily can imagine "Next" can be mapped on
"right", "top", "bottom", "left" or even "underneath" -
depends on the 'flow' method used - current transformation
applied.
[1] http://en.wikipedia.org/wiki/Topology
Cheers.
--
Andrew Fedoniouk
http://terrainformatica.com
Received on Friday, 4 February 2011 07:22:54 UTC