- From: Markus Ernst <derernst@gmx.ch>
- Date: Thu, 18 Mar 2010 15:32:39 +0100
- To: "Andrew Fedoniouk" <news@terrainformatica.com>, www-style@w3.org
> Datum: Wed, 17 Mar 2010 20:59:48 -0700 > Von: "Andrew Fedoniouk" <news@terrainformatica.com> > > 1. Units that cover the maximum viewable or scrollable space > > > > There are the vw, vh and vm units in the draft. However, they do not > > solve problems such as backgrounds that are not continued when > > scrolling is necessary. > > > > I suggest to add 2 more units, they might be named "page width" and > > "page height": > > - pw: the viewport's width or maximum contents width, whichever is > > greater > > - ph: the viewport's height or maximum contents height, whichever is > > greater > > > > Use case: A navigation column with a background. If the contents > > extend the viewport, the background of the navigation column is > > supposed to be continued to the bottom of the page - just the same > > behaviour as in a HTML3 table layout with <table height="100%">. > > If some element inside the document will have width:1.2pw; what would be > its computed value? > It appears that this will create indefinite recursive calculation loop. I see that point. The same would apply for a construct such as <p style="height:1ph">Text</p> <p>More text</p> > > 2. A method to adjust the dimensions of elements > > > > I suggest to introduce a method to give some elements the same width > > or height, without knowing the appropriate value. This could be > > achieved by a function that looks for the computed dimensions of all > > elements covered by a selector, and gets the highest one. > > > > Use cases: > > - Align labels and fields in a form without a table. > > - Adjust several elements with position:absolute to each other, for > > example to achieve a multi-column layout > > > > For a part of a simple form: > > <p><label class="aligned">Age:</label><input type="text"></p> > > <p><label class="aligned">Preferred tea:</label><input > > type="text"></p> > > .... the CSS could look like this: > > label.aligned { > > width:max(width, .aligned); > > } > > > > The function max() takes 2 arguments: > > - the dimension to be looked for > > - the selector that covers the group of elements whose dimension is > > looked for > > The same problem as above - recursive calculations. I see, my concrete solution suggestions do not seem to be practicable. Anyway the problem is real - really basic things like making 2 columns extend to the same height need a lot of trickery. That does not seem to be a satisfactory for CSS as a whole. As the same thing is easy to achieve with a table layout, I assume that suitable algorithms would not be impossible. Maybe it could work when I replace the max() function by an adjust() function without arguments. It just covers the selector(s) applied to the rule: #contents, #navigation { height:adjust(); min-height:100%; } label.aligned { width:adjust(); } The algorithm for adjust() then would have to look something like: - If the rule applies to less than 2 elements, ignore the declaration. - Compute the width resp. height of every element covered by the rule. - If recursion occurs, break, ignore the declaration, throw an error. - After the values of all elements could be computed successfully, apply the highest value to every element. (P.S. I apologize for the GMX signature appearing below. I usually write to mailing lists from my local mail client, but at www-style a software called openspf rejects all my messages, regardless of the SMTP configuration I use. So I am forced to use the webmail client.) -- GMX DSL: Internet, Telefon und Entertainment für nur 19,99 EUR/mtl.! http://portal.gmx.net/de/go/dsl02
Received on Thursday, 18 March 2010 14:33:13 UTC