- From: Matthew Brealey <thelawnet@yahoo.com>
- Date: Fri, 19 Nov 1999 01:18:58 -0800 (PST)
- To: www-style <www-style@w3.org>
As I see it, the existing positioning syntax has a number of deficiencies. Firstly, and most simply, that the containing block for absolutely positioned elements is not always what is desired (see http://www.w3.org/TR/REC-CSS2/visudet.html#containing-block-details ). It is defined (very loosely speaking) as the nearest non-static element, failing which it is the root element (incidentally, when this phrase is used, does it include BODY's margins, etc. or only HMTL's (clearly on a literal reading it does not)). This will not always be what is desired by the author. Hence, a relative-to property could be introduced. E.g., position: absolute; relative-to: -1B (a change to the grammar of CSS, though a backwardly compatible one is required), where the number indicates the number of elements back - -1B = Nearest parent block. Secondly, a true (i.e., not float) positioning scheme that affects the position of other elements is required. This seems to present two main difficulties. Firstly, whether the page should be rendered top-down, or whether the whole page should be read first. The second method is the more flexible, but does present the performance overhead. There are essentially two options - render top-down, or have a element-layout property - element-layout: top-down (initial) or element-layout: read-all. Having considered this, it is essentially trivial to introduce the one new position value that is required - wraparound (or wrap absolute, as suggested by Ian Hickson). There seems to be no need for relative wrapping positioning (because margins will do the same job!). It seems here that a relative-to value would be most useful. As to the precise implementation of the scheme, there seems to me to be two possibilities. Firstly, you could have the positioning 'taking bites' out of block elements, with an effect somewhat akin to a square doughnut. Secondly, the other option is to have subsequent elements overlapping as per float, but with inline boxes/line boxes flowing around it. It is clear that this positioning scheme is required, since without it you can't do basic things like catchlines centred between two columns. ===== ---------------------------------------------------------- From Matthew Brealey (http://members.tripod.co.uk/lawnet (for law)or http://members.tripod.co.uk/lawnet/WEBFRAME.HTM (for CSS)) __________________________________________________ Do You Yahoo!? Bid and sell for free at http://auctions.yahoo.com
Received on Friday, 19 November 1999 04:19:03 UTC