Re: [css-transforms] Should transform-style: preserve-3d create containing block for positioned descendants?

On Dec 11, 2014, at 2:24 PM, Robert O'Callahan <robert@ocallahan.org> wrote:
> 
> On Fri, Dec 12, 2014 at 7:47 AM, Simon Fraser <smfr@me.com <mailto:smfr@me.com>> wrote:
> There is disagreement among implementations about whether "transform-style: preserve-3d” creates containing block for positions descendants.
> 
> The working draft[1] says in the prose:
> 
>> A 3D rendering context is established by a a transformable element whose computed value for transform-style is preserve-3d, and which itself is not part of a 3D rendering context. Note that such an element is always a containing block.
> 
> 
> but we don't explicitly call this out under the transform-style property. The new spec text doesn't require that preserve-3d create containing block, and logically I see no reason why it should. (I’m also not sure why perspective has to create a containing block.)
> 
> WebKit/Blink have this behavior because of a bug[2]. Firefox has this behavior too, possibly because they copied WebKit behavior, or went by the spec prose. IE 11 does not have this behavior.
> 
> I think it's simpler if it does. If we don't make it a containing block, then abs-pos children can escape from a preserve-3d parent and it's unclear whether and how the parent's preserve-3d would apply to them.

For both this reason and for compat, it feels like preserve-3d has to create containing block for positioned descendants then. I’m OK with that (modulo web developer surprise when adding causes positioned things to move around).

Simon

Received on Wednesday, 28 January 2015 02:41:23 UTC