- From: Justin Poirier <poirier.justin@gmail.com>
- Date: Fri, 14 May 2010 00:12:30 -0400
- To: Anton Prowse <prowse@moonhenge.net>
- Cc: Sylvain Galineau <sylvaing@microsoft.com>, "www-style@w3.org" <www-style@w3.org>
- Message-ID: <AANLkTilgoWUVjyPABumRYmN7-h4MTvu1N7NQhz5OTCak@mail.gmail.com>
Anton, I think you meant to introduce the following as a proposed replacement in 9.9.1, not Appendix E :) > > 5. In Appendix E, E.2 [2], replace: > # The contents of inline blocks and inline tables are stacked as > # if they generated new stacking contexts, except that any > # positioned elements and any elements that actually create new > # stacking contexts take part in the parent stacking context. They > # are then painted atomically in the inline stacking level. > with > # The contents of positioned elements with 'z-index: auto', and > # non-positioned floats, inline blocks and inline tables are > # stacked as if they generated new stacking contexts, except that > # any positioned elements and any elements that actually create > # new stacking contexts take part in the parent stacking context. > # Such inline blocks and inline tables are painted atomically in > # layer 5. > > Out of curiosity, why specify the layer in which inline blocks and inline tables are painted, and not the same for z-index:auto elements and non-positioned floats? This passage inadvertently brought something to my attention. The phrase "...any positioned elements and any elements that actually create new stacking contexts..." also appears at various layers in Appendix E. At those locations (I'm not sure about 9.9.1) it used to simply read "...any elements that actually create a new stacking context..." This was true at least as recently as April 2009. Could somebody kindly tell me when the additional case of "positioned elements" was added to this sentence? I thought I'd been following the stacking order issue fairly closely over the last couple years, but I can't seem to find the point at which this change was made. I think maybe this changes the meaning of what we're saying. By referring to both positioned elements AND elements that create new stacking contexts, unless we're being redundant, we intend a conjunction of 2 distinct things... but the only positioned elements which don't create stacking contexts are those with z-index:auto. So this must be what's meant by the "positioned elements" expression. We already knew that elements which don't create stacking contexts can't paint descendant elements that DO create stacking contexts, instead passing them up to the nearest ancestor stacking context... but this change adds that non-stacking-contexts can't paint z-index:auto elements either! Note that z-index:auto elements, while unique, are not elements which create stacking contexts. This is significant because it adds a new type of element behaviour. In [a], exclusively elements whose entire contents are painted by the Appendix E algorithm were referred to as "stacking contexts", while other elements to whose contents the algorithm might be applied in some form were referred to as "stacking context-like elements". Stacking contexts paint descendant stacking contexts as well as stacking context-like elements. Stacking context-like elements only paint one another, leaving descendant stacking contexts to be painted by the nearest ancestor stacking context. According to the phrase at hand, z-index:auto elements are like stacking contexts in that they get passed up by stacking context-like elements; yet like stacking context-like elements in that they themselves pass the buck when descendants turn out to be stacking-contexts or other z-index:auto elements (one z-index:auto element can't paint another!). Is this what is intended? I apologize for how complex this sounds. I don't know of a non-complex way to express it. The issue is coming along, I think. Justin Poirier classroom306.com [a] http://dev.moonhenge.net/css21/spec/z-index/
Received on Friday, 14 May 2010 04:13:04 UTC