- From: ValerieGSharp <ValerieGSharp@netscapeonline.co.uk>
- Date: Mon, 03 Sep 2001 16:27:37 +0100
- To: "www-style@w3.org" <www-style@w3.org>
There appears to be a contradiction regarding which edge, padding or content, forms the containing block for an Absolutely Positioned element with 'auto' offset(s). According to CSS2 10.1 Definition of "containing block" [1]: "2. For other elements, unless the element is absolutely positioned, the containing block is formed by the content edge of the nearest block-level ancestor box." and: "4. If the element has 'position: absolute', the containing block is established by the nearest ancestor with a 'position' other than 'static', in the following way: 1. In the case that the ancestor is block-level, the containing block is formed by the padding edge of the ancestor." However, when calculating, e.g., the height of an Abs. Pos. non-replaced element, CSS2 10.6.4 Absolutely positioned, non-replaced elements [2] says: "If all three of 'top', 'height', and 'bottom' are auto, treat 'top' like 'static-position' and apply rule number three below." And CSS2 9.3.2 Box Offsets... [3] says of 'static-position': "For 'top' use the distance from the top edge of the containing block to the top margin edge of a hypothetical box that would have been the first box of the element if its 'position' property had been 'static'." But the containing block for an element with position:static is formed by the *content* edge of the ancestor, not the padding edge. So, for an Abs. Pos. element with offsets 'auto', should the containing block be formed by the padding or the content edge? Refs (incorporating errata <http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html>): [1] <http://www.w3.org/TR/REC-CSS2/visudet.html#containing-block-details> [2] <http://www.w3.org/TR/REC-CSS2/visudet.html#abs-non-replaced-height> [3] <http://www.w3.org/TR/REC-CSS2/visuren.html#position-props> -- Regards, Val Sharp - Edinburgh
Received on Monday, 3 September 2001 13:11:09 UTC