- 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