48 messages in org.w3.www-styleRe: Publishing the flexible box model
FromSent OnAttachments
L. David BaronJun 3, 2008 9:48 pm 
Alan GresleyJun 3, 2008 11:56 pm 
L. David BaronJun 4, 2008 12:22 am 
Anne van KesterenJun 4, 2008 1:12 am 
David HyattJun 4, 2008 1:46 pm 
Andrew FedonioukJun 4, 2008 5:50 pm 
L. David BaronJun 4, 2008 6:04 pm 
David HyattJun 4, 2008 6:54 pm 
Andrew FedonioukJun 4, 2008 8:09 pm.h
L. David BaronJun 4, 2008 10:23 pm 
L. David BaronJun 4, 2008 10:48 pm 
Andrew FedonioukJun 4, 2008 11:39 pm 
Andrew FedonioukJun 5, 2008 12:32 am 
Alan GresleyJun 5, 2008 12:34 am 
Robert O'CallahanJun 6, 2008 3:44 am 
fantasaiJun 6, 2008 8:12 am 
Andrew FedonioukJun 6, 2008 9:06 am 
Anne van KesterenJun 6, 2008 9:40 am 
Andrew FedonioukJun 6, 2008 9:54 am 
fantasaiJun 6, 2008 12:41 pm 
Andrew FedonioukJun 6, 2008 1:00 pm 
Robert O'CallahanJun 6, 2008 1:43 pm 
Andrew FedonioukJun 6, 2008 3:48 pm 
Robert O'CallahanJun 7, 2008 2:30 am 
Alan GresleyJun 7, 2008 7:24 am 
Alan GresleyJun 7, 2008 7:48 am 
Brad KemperJun 7, 2008 10:03 am 
Andrew FedonioukJun 7, 2008 1:34 pm 
Andrew FedonioukJun 7, 2008 2:46 pm 
Alan GresleyJun 7, 2008 8:56 pm 
Robert O'CallahanJun 9, 2008 5:48 pm 
Andrew FedonioukJun 9, 2008 7:22 pm 
Robert O'CallahanJun 9, 2008 7:59 pm 
L. David BaronJun 9, 2008 8:29 pm 
Andrew FedonioukJun 9, 2008 9:24 pm 
Andrew FedonioukJun 9, 2008 9:55 pm 
Robert O'CallahanJun 9, 2008 10:04 pm 
Andrew FedonioukJun 10, 2008 12:02 am 
Robert O'CallahanJun 10, 2008 1:46 am 
Alan GresleyJun 10, 2008 2:19 am 
Alan GresleyJun 10, 2008 2:35 am 
Alan GresleyJun 10, 2008 2:50 am 
Andrew FedonioukJun 10, 2008 12:58 pm 
Robert O'CallahanJun 10, 2008 2:34 pm 
Andrew FedonioukJun 10, 2008 4:07 pm 
Andrew FedonioukJun 10, 2008 4:30 pm 
Andrew FedonioukJun 10, 2008 4:39 pm 
Mike WilsonJun 12, 2008 4:46 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: Publishing the flexible box modelActions...
From:Andrew Fedoniouk (ne@terrainformatica.com)
Date:Jun 7, 2008 2:46:17 pm
List:org.w3.www-style

Robert O'Callahan wrote:

On Sat, Jun 7, 2008 at 10:49 AM, Andrew Fedoniouk <ne@terrainformatica.com <mailto:ne@terrainformatica.com>> wrote:

Robert O'Callahan wrote:

There will also be interesting interactions between flex-units and clearance. <div style="overflow:auto;" class="block-formatting-context"> <div style="height:1*;">Hello</div> <div style="float:left;">Kitty</div> <div style="clear:left;">Kitty</div> </div> Since we don't know the vertical positions until the end, we can't know whether to clear or not. If we treat 1* as auto while we compute clearance, the results are going to be really bad when we apply flex at the end.

As I said floats are not the best friends of flexes. But if flexes and the flow attribute will be implemented you will see a dramatic reduction of floats uses. All cases when floats are used currently for horizontal block layout purposes can be implemented significantly better and more reliable with flexes.

Many of them can use inline-block as well actually.

I agree in general. But, due to the nature of HTML, use cases for inline-block are significantly limited. <span> is practically the only element that keeps display:inline-block afloat. <span> is declared in[1] as <!ELEMENT SPAN - - (%inline;)* -- generic language/style container --> that disables many potential use cases.

Unfortunately floats are a reality and you need to specify something that makes sense for how floats and flex-units and clearance interact, because even if authors shouldn't use them together, they definitely will.

Consider following change (CSS 2.1):

9.4.1 Block formatting contexts

*Blocks in flex context,* floats, absolutely positioned elements, inline-blocks, table-cells, table-captions, and elements with 'overflow' other than 'visible' (except when that value has been propagated to the viewport) establish new block formatting contexts.

Where "block in flex context" is such a block that either has dimensional attributes (height,margin, etc.) defined in flex units or is contained in a block that has @flow attribute defined.

That simply makes floats and flexes independent.

I'm not saying these difficulties are insurmountable. But I hope it's clear that integrating flex-units into the existing CSS layout specs would create many issues that have to be analyzed and specified. It's not good enough just to wave our hands and say it's all obvious; the issues raised already are not obvious and we've only just scratched the surface.

Opportunities that flexes provide outweigh possible issues significantly. I wish flexes were in CSS from the very beginning. That would simplify spec significantly (in particular all about floats). And yet it will make obsolete that holy-wars about tables used for layout purposes. Flexes give even more than you can do with html tables.

You may be right, but we have to deal with the way things are.

By the way, what happens when flex-units occur in contexts like tables and relative and absolute positioning?

HTML tables already have a concept of flex units. They are named there "relative length" units.

Please read: http://www.w3.org/TR/html401/types.html#type-length

That, by the way, is one more thing that does not allow CSS to reproduce table layouts in full.

Flex computation is defined for the cases when you have container and one or more elements and attributes competing for free space distribution inside that container.

In this terms flex lengths and dimensions of position:absolute and position:fixed elements can be computed against their layout containers too.

Thus: div { position:absolute; width:25%; height:25%; left:1*; top:1*; right:1*; bottom:1*; }

will position such an element in the middle of abs. pos. container.

position:relative elements do not have concept of layout container for computation of left,top,right and bottom so flex values for these attributes are treated as undefined.

So, we need a spec proposal that carefully considers all the possible interactions between flex-units and CSS layout where flex-units can be used, and describes how issues (such as the ones already raised) are resolved.

I agree. The problem is that I am personally is not that good in writing specs. If someone will help me than we can come up with something. In principle it not going to be very complex definition.

I am not as optimistic as you.

Adding flex-units support seems to me to be a very invasive change that will affect large chunks of the CSS spec and many parts of existing layout engines. I think the flexbox spec, or something like it, will be much easier and lower risk, and therefore much more likely to be successful. I think we should continue working on it and not wait for flex-units to be worked out.

flexbox as a flexible entity will have exactly the same set of implications that needs to be resolved.

Flex element in David's proposal is exactly:

element { width:1*; } or element { height:1*; }

I cannot see of how it will be simpler to resolve.

-- Andrew Fedoniouk.

http://terrainformatica.com

[1] http://www.w3.org/TR/html401/struct/global.html#h-7.5.4