- From: Andrew Fedoniouk <news@terrainformatica.com>
- Date: Wed, 15 Oct 2008 10:40:01 -0700
- To: Håkon Wium Lie <howcome@opera.com>
- CC: "Tab Atkins Jr." <jackalmage@gmail.com>, www-style@w3.org
Håkon Wium Lie wrote:
> Also sprach Tab Atkins Jr.:
>
> > > border-parts: 1em auto 2em
>
> > Man, I was all ready to suggest using negative numbers on border length to
> > make it start from the middle rather than the corner, but this blows that
> > out of the water. Yes, border-parts is a substantially better proposal than
> > border-length.
>
> Super, thanks!
>
> > I'd suggest putting an example into the spec of something you can *only* do
> > with border-part - right now you're just duplicating what border-length can
> > do. Just use the examples you've already come up with in your email, as
> > they demonstrate the substantial power inherent in this.
>
> Right, here it is:
>
> http://dev.w3.org/csswg/css3-gcpm/#border1
>
> (These urls are unstable, the draft changes quickly these days)
>
> > Taking this idea slightly further, might this be a place to introduce flex
> > units? The auto keyword in this context is equivalent to 1fl, after all,
> > and this would address the requests that a few other authors have. I'd like
> > to see a comprehensive Flex module at some point, though...
>
> So, you could say:
>
> border-parts: 1em 1fl 1em 2fl 1em;
>
> and the first gap in the border would be half the size of the second one?
>
> It makes sense to me and I believe Philip Taylor will like it, too :)
>
> However, introducing a new unit is a pretty big deal. Where else would
> you use it?
>
>
I am working on flex units proposal now and expect it to be available in
some preliminary state in a month.
Basic idea is to be able to define something like this:
<ul id="three-columns">
<li id="left">...</li>
<li id="center">...</li>
<li id="right">...</li>
</ul>
and styling:
ul#three-columns
{
flow:horizontal; /* children are placed in single row horizontally */
}
ul#three-columns > li
{
height: 1*; /* or 1fl, all children have the same height - height
of the row minus padding, borders */
width: 100px;
}
ul#three-columns > li#center
{
width: 1*; /* li#center is a "spring" - takes space left from
li#left and li#right in the container */
}
If you have flex units in place then you will see this as:
+------+---------------------+------+
| | | |
|#left | #center |#right|
| | | |
|100px | continer-width |100px |
| | - 100px - 100px | |
+------+---------------------+------+
Principle of the flex units is the same as the Multi-Lenght (Relative
Units)
in HTML ( http://www.w3.org/TR/REC-html40/types.html#type-length )
This is almost the same flex principle that is used when you define
<frameset cols="100,*,100">...
'*' here is 1* or 1fl
--
Andrew Fedoniouk.
http://terrainformatica.com
Received on Wednesday, 15 October 2008 17:40:48 UTC