This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 16023 - CSS3 Image and element() with 3D transforms?
Summary: CSS3 Image and element() with 3D transforms?
Status: RESOLVED INVALID
Alias: None
Product: CSS
Classification: Unclassified
Component: Image Values and Replaced Content (show other bugs)
Version: unspecified
Hardware: PC All
: P2 normal
Target Milestone: ---
Assignee: Tab Atkins Jr.
QA Contact: public-css-bugzilla
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-02-18 17:14 UTC by Dirk Schulze
Modified: 2012-02-27 23:25 UTC (History)
7 users (show)

See Also:


Attachments

Description Dirk Schulze 2012-02-18 17:14:00 UTC
What if elements within element()[1] have 3D transforms? How would perspective interact with other content in HTML?

For SVG I plan not to allow 3D transforms for pattern, gradients, mask and clipper, their childs and referenced resources of the childs. At first they are used by a 2D shape anyway. Beside pattern, all other operations are 2D anyway. Pattern could have 3D transformed childs, but we would have to specify perspective of a pattern in combination with perspective of the referencing target element.

The amount can be to hard to specify and in my eyes impossible to overlook in the short time we have left to get to CR. And it is maybe even harder to implement.

For this reason I would suggest to ignore all transform functions with 3D content on elements when they are in the rendering context of element().

[1] http://dev.w3.org/csswg/css3-images/#element-reference
Comment 1 Dirk Schulze 2012-02-26 15:19:18 UTC
Discussion on: http://lists.w3.org/Archives/Public/www-style/2012Feb/1297.html

Moving this to CSS3 images. Can be closed if people think that it is not underspecified.
Comment 2 Tab Atkins Jr. 2012-02-27 23:25:25 UTC
We don't need to specify anything in particular - the perspective is taken into account when the element is drawn, then it's flattened into an image and drawn into the referencing element, which can then go and do its own transformations.

element() isn't <use> or something like that, where you get to pretend that you'd just substituted the referenced content in place of the reference.  It's just a way of using an element as an image, and images are flat and don't interact with transforms where they're used.

(For SVG, I recommend allowing 3d transforms in <pattern> - there's no good reason not to, since <pattern> is very similar to element().  But this should be discussed somewhere not-here. ^_^ )