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

Re: Positioned Layout proposal

From: Andrew Fedoniouk <andrew.fedoniouk@live.com>
Date: Tue, 19 Oct 2010 23:04:32 -0700
Message-ID: <BAY141-DS4E9D9463D1F7349C6B2A4F85C0@phx.gbl>
To: "Tab Atkins Jr." <jackalmage@gmail.com>, <shelby@coolpage.com>
Cc: <robert@ocallahan.org>, "www-style list" <www-style@w3.org>
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 
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:
authors claim that they are able to deal with:
The collection of constraints [in CSS that] may include cycles (i.e.
simultaneous equalities and inequalities or redundant constraints) and
conflicting preferences.
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


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

This archive was generated by hypermail 2.3.1 : Monday, 2 May 2016 14:38:39 UTC