W3C home > Mailing lists > Public > www-style@w3.org > February 2012

[css3-images] Referencing <svg> element directly with element()

From: Erik Dahlstrom <ed@opera.com>
Date: Wed, 22 Feb 2012 12:15:03 +0100
To: www-style@w3.org
Message-ID: <op.v92uvdn9geuyw5@localhost.localdomain>
Hi all,

using the element() notation and referencing an <svg> element[1], I'm  
wondering if it is possible to reference a whole <svg> fragment which in  
itself is not rendered? One that only renders when referenced via  
element() but which is invisible and doesn't take up any space in the main  
document? It seems to me that even the paint server model (svg gradients,  
patterns) that is defined in the spec suffers from the same problem, even  
if the <svg> contained only elements inside a <defs> the <svg> itself  
would still take up space in the main document.

One way to solve that might be to use cssElementMap, but that has the  
drawback of having to use scripting. Is there a script-less way of doing  

If I understand the spec correctly, elements that are "paint sources" (e.g  
<img>, <canvas> and <video>) can still be used when referenced via  
element() even if they are not rendered. Please clarify what "not  
rendered" means. Would display:none be included in that definition for  
example? Please consider making <svg> as a "paint source" as well. That  
would make svg easier to use here, since you wouldn't have to wrap the  
content inside a <pattern> element.

[1] http://dev.w3.org/csswg/css3-images/#element-reference

Erik Dahlstrom, Core Technology Developer, Opera Software
Co-Chair, W3C SVG Working Group
Personal blog: http://my.opera.com/macdev_ed
Received on Wednesday, 22 February 2012 11:15:41 UTC

This archive was generated by hypermail 2.4.0 : Monday, 23 January 2023 02:14:11 UTC