Sent by John Lewis on 21 January 2003 04:04
Kevin wrote on Monday, January 20, 2003 at 9:10:04 PM:
> Well I'm a bit confused. If an element has a lower stack level than
> its parent (or ancestor), then my browsers render it underneath the
> parent. Mozilla seems to allow an element to have a lower stack
> level than the root element, and it thinks the root element[1] has a
> stack level of zero.
I shouldn't be talking about stack levels since I'm no expert.
However, I think I know where the confusion is arising. If the root
element is the only element in its stacking *context*, that means no
descendant of the root element may ever be rendered below the root
element by changing it's stack *level*.
CSS2 sayeth <http://www.w3.org/TR/REC-CSS2/visuren.html#q30>:
> Each box belongs to one stacking context. Each box in a given
> stacking context has an integer stack level, which is its position
> on the z-axis relative to other boxes in the same stacking context.
> Boxes with greater stack levels are always formatted in front of
> boxes with lower stack levels. Boxes may have negative stack levels.
> Boxes with the same stack level in a stacking context are stacked
> bottom-to-top according to document tree order.
>
> The root element creates a root stacking context, but other elements
> may establish local stacking contexts. Stacking contexts are
> inherited. A local stacking context is atomic; boxes in other
> stacking contexts may not come between any of its boxes.
>
> An element that establishes a local stacking context generates a box
> that has two stack levels: one for the stacking context it creates
> (always '0') and one for the stacking context to which it belongs
> (given by the 'z-index' property).
Which means that the root element, since it belongs to its own
stacking context (i.e., no other element is in the root stacking
context), cannot possibly be in front of any other element, no matter
the root element's stack level, and no matter the other element's
stack level or stacking context.
I could definitely be wrong. I have little experience with this part
of CSS.
--
John