W3C home > Mailing lists > Public > www-style@w3.org > October 2010

RE: Positioned Layout proposal

From: Shelby Moore <shelby@coolpage.com>
Date: Tue, 19 Oct 2010 11:43:23 -0400
Message-ID: <a76346ec5cbf9227bf8c32f2eab220cb.squirrel@sm.webmail.pair.com>
To: "Belov, Charles" <Charles.Belov@sfmta.com>
Cc: "www-style list" <www-style@w3.org>, "Tab Atkins Jr." <jackalmage@gmail.com>, "Andrew Fedoniouk" <andrew.fedoniouk@live.com>
Apologies for jumping in late. I have not yet read through the entire thread.

I will generalize this model to generalize and supercede the proposed
Flex-Layout[1]:

[1] http://lists.w3.org/Archives/Public/www-style/2010Oct/0276.html
http://www.terrainformatica.com/w3/flex-layout/flex-layout.htm

For a decade, I've wanted some way in HTML+CSS to position relative to the
right or bottom of the siblings and/or parent hierarchy container, if at
least for the simple use case of positioning elements at the bottom of the
viewport (which won't scroll away). I estimate that a majority of others
have too. That part is probably realistic.

The extra positioning constraints relative to siblings and/or parent
hierarchy container seem realistic, e.g. don't clip the viewport, and
please include 2D centering.

However, the Principal of Least Power applies to your proposed element().

Afaics, the arbitrary element() proposal will introduce circular
constraint cases that are unsolvable or become too complex for the layout
engine to solve in real-time, because these new edge constraints will
co-exist in arbitrary orders with respect to hierarchal constraints, e.g.
tables, columns, or float. This will be perhaps analogous to injecting
garbage collection search algorithms, but not searching just reference
ancestry, rather searching on complex dynamic relationships of layout
constraints, i.e. N-dimensional differential equations relations. I didn't
try too much yet wrap my mind around the general mathematical model.

Good news is that looking at Tab's main example use case (and the quickly
scanned other use cases), afaics the element() can be restricted to
non-float siblings (which are not table col or row elements), which afaics
will eliminate the problem of the prior paragraph.

> "When specifying which edge an element positions itself relative to,
> it's possible to create cycles, where following the chain of references
> from one element eventually leads back to the same element.

Agred even with the restriction of element() I made above, there are still
circular unsolvable constraint cases, e.g. elem1 left of elem2, elem2 left
of elem3, elem3 left of elem1. These constraints can probably be solved in
real-time on current mainstream CPUs, and the browser can generate an
error. Do we want to introduce a paradigm that has cases with no
well-defined layout? What do we display in cases of such circular
constraint error, e.g. revert to inline?

I suppose that when the constraints cause overlapping elements, then the
default z-order applies as per their order in the content, or any
override.

I suggest "Generalized Relative Constraints" as the name for this
proposal, because of the following suggestion.

Could this proposal thus generalize and supercede the Flex-Layout
proposal[1], if we generalize the proposal to not only specify relative
edge position, but also relative size between elements???  Yeah!

Overall, I love it this proposal given the restrictions I proposed. I love
this effort to generalize layout typography algorithms. Gimmie asap :D
Received on Tuesday, 19 October 2010 15:43:51 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:33 GMT