- From: Andrew Fedoniouk <andrew.fedoniouk@live.com>
- Date: Tue, 19 Oct 2010 23:04:32 -0700
- 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 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