W3C home > Mailing lists > Public > www-style@w3.org > May 2004

Re: CSS: %% length unit. Proposal. Some clarifications.

From: Andrew Fedoniouk <news@terrainformatica.com>
Date: Mon, 10 May 2004 00:30:28 -0700
Message-ID: <008101c43660$aad9b050$0301a8c0@ATHLON>
To: "Boris Zbarsky" <bzbarsky@MIT.EDU>
Cc: <www-style@w3.org>

OK.

Could somebody help me to express this properly?

%% units calculation rule:

Two steps calculation:
1) mincontentwidth = minimum width of all elements in the line box. (dont
count attributes with %% at this step)
freespacewidth = containercontentwidth - mincontentwidth. (
containercontentwidth is known at this step)
2) change all attributes in all elements having %% units value according
this value and freespacewidth  (percent calculation) .

width/height, margin, padding, border can use %% units. top,bottom, left,
right - cannot - makes no sence.

PS: these units are similar to XUL:<spacer flex=x> facilities, but have
bigger potential and are in CSS spirit.
These units solve problems of "fluid" horizontal and vertical layouts.

Andrew Fedoniouk.
http://terrainformatica.com




----- Original Message -----
From: "Boris Zbarsky" <bzbarsky@MIT.EDU>
To: "Andrew Fedoniouk" <news@terrainformatica.com>
Cc: <www-style@w3.org>
Sent: Monday, May 10, 2004 12:10 AM
Subject: Re: CSS: %% length unit. Proposal. Some clarifications.


> Andrew Fedoniouk wrote:
> > What I am saying here:
> > <P>from:<INPUT ... style="width:100%%" /></P>
> >
> > set width of INPUT equal to 100% of  <container width minus space
occupied
> > by all 'solid' elements in current line>
>  > 'solid' elements here means all elements having horizontal dimensions
in
>  > units other than %%.
>  > 'space occupied' means all width+padding+margin+border having values
other
>  > than %%.
>
> The problem David pointed out is that what elements are in the current
line
> would depend on the width of the <input>.  Thus you have a circular
dependency.
>   Consider the following markup:
>
> <P style="width: 200px">from:<input style="width:100%%"> more text</p>
>
> All of the following renderings satisfy the conditions you expressed
above:
>
> 1)
>
>    from: [                 ]
>    more text
>
> (input is 200px minus width of "from: " wide).
>
> 2)
>
>    from: [            ] more
>    text
>
> (input is 200px minus width of "from: " and width of " more" wide).
>
> 3)
>
>    from: [       ] more text
>
> (input is 200px minus width of "from: " and width of " more text" wide).
>
>
> > Is this formal enough?
>
> Apparently not, since there are three renderings which are all valid per
the
> description.  Hence the information provided is not enough to create
> interoperable implementations.
>
> > These units will not change any existing breaking rules and any others
rules
> > of CSS.
>
> Sure.  None of the breaking rules need changing in the above examples.
>
> > This is already implemented in my experimental renderer. It works. I can
> > demonstrate it alive. I can port this part into Mozilla, Opera, Safari,
IE.
>
> I would be more impressed if you could write a description of the
algorithm that
> would be implementable by someone _else_ in those browsers.  That's what
Ian
> asked you to do and what you have failed to do.
>
> -Boris
>
Received on Monday, 10 May 2004 03:32:47 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:54:29 GMT