- From: Andrew Fedoniouk <news@terrainformatica.com>
- Date: Sun, 21 Mar 2010 11:33:14 -0700
- To: "Tab Atkins Jr." <jackalmage@gmail.com>, "Aryeh Gregor" <Simetrical+w3c@gmail.com>
- Cc: "Daniel Glazman" <daniel.glazman@disruptive-innovations.com>, <www-style@w3.org>
--------------------------------------------------
From: "Tab Atkins Jr." <jackalmage@gmail.com>
Sent: Sunday, March 21, 2010 8:41 AM
To: "Aryeh Gregor" <Simetrical+w3c@gmail.com>
Cc: "Daniel Glazman" <daniel.glazman@disruptive-innovations.com>;
<www-style@w3.org>
Subject: Re: positioning and sizing an element relatively to any other
element
> On Sat, Mar 20, 2010 at 6:52 PM, Aryeh Gregor <Simetrical+w3c@gmail.com>
> wrote:
>> On Fri, Mar 19, 2010 at 7:12 PM, Tab Atkins Jr. <jackalmage@gmail.com>
>> wrote:
>>> Example: an element with significant text content and a floating
>>> child, where you want the child to stretch the whole height of the
>>> element. The height is determined by the text content, as there is
>>> more of it than what is in the floated box. You can't do this right
>>> now.
>>>
>>> Another example: several elements using Table Layout to link their
>>> heights together. You want some children of the elements to stretch
>>> to the full height of the display:table-cell containers.
>>
>> I still don't quite get it. Could you provide some sample HTML and
>> point to exactly which box is taller/shorter than you want it to be?
>> Maybe I'm just being dense.
>
> Sure. For the first one, concerning floats:
>
> <!DOCTYPE html>
> <title>Test</title>
> <style>
> div, div * {
> border: 2px solid black;
> padding: 2px;
> background: white;
> color: black;
> }
>
> div { width: 200px; }
>
> span { width: 100px; }
> </style>
> <div>
> <span style=float:left;border-color:green;>
> I want to be as tall as my parent's box.
> </span>
> <p style=border-color:red;>foo bar foo bar foo bar foo bar foo bar
> foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo
> bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar
> foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo
> bar foo bar foo bar foo bar foo bar foo bar </p>
> </div>
>
Tab, am I correct in my understanding that you want actually this:
div { flow: horizontal; /* children replaced in a row */ }
div > * { height: 1*; /* flex height - these elements span the whole row
*/ }
div > span { width: 100px; }
div > div
{
width: 1*; /* flex width - this element takes the rest width left in
container.
This declaration is optional as width:auto is
width: 1* in fact. */
}
Floats by the nature of their computation cannot have flexes in any form so
with them
that layout is not achievable in any flex model.
--
Andrew Fedoniouk
http://terrainformatica.com
Received on Sunday, 21 March 2010 18:33:43 UTC