Re: Positioned Layout proposal

--------------------------------------------------
From: "Tab Atkins Jr." <jackalmage@gmail.com>
Sent: Tuesday, October 19, 2010 4:43 PM
To: <shelby@coolpage.com>
Cc: <robert@ocallahan.org>; "www-style list" <www-style@w3.org>
Subject: Re: Positioned Layout proposal

>
> I believe the important bit is that existing layout engines can handle
> position:absolute elements because they always reference boxes earlier
> in the tree.  It's impossible to create cycles when you have a
> restriction like that.  (You can maybe create oscillating constraints,
> but that's a different issue.)


Just for the clarity: constraints are not oscillating.

For linear sets of constraints you can get stable solution or none.

Problem is that HTML/CSS exhibit non-linear behavior:
Y=F(X) is a step function ( http://en.wikipedia.org/wiki/Step_function ).

Set of non-linear equations (constraints) may have multiple solutions
for some input values.

That is actually what happens in CSS on overflow:auto containers when
content fills the area almost in full (e.g. free space is less than height 
of
text line or so).

>
> Unfortunately, that's slightly too restrictive for one of the
> use-cases I have, so I'm experimenting with ways to safely allow
> references to elements later in the document so that cycles are easy
> to detect and break.
>

In this paper:
http://www.cs.washington.edu/research/constraints/web/ccss-uwtr.pdf
authors claim that they are able to deal with:
<quote>
The collection of constraints [in CSS that] may include cycles (i.e.
simultaneous equalities and inequalities or redundant constraints) and
conflicting preferences.
</quote>
but it seems that they reduced the task to linear equations only.

----------

Something tells me that your idea is practically applicable only to
popups (separate out-of-flow elements/windows).
Popups do not affect layout of host elements - so you can bound any
element on popup layer (e.g. desktop) to any element on CSS
canvas layer.

If you will reduce your task to such two layers where
elements on popup layer do not affect positions of elements
on canvas layer then you can get something relatively manageable.

-- 
Andrew Fedoniouk

http://terrainformatica.com



 

Received on Wednesday, 20 October 2010 06:26:15 UTC