- From: Anne van Kesteren <fora@annevankesteren.nl>
- Date: Thu, 19 Jan 2006 13:11:08 +0100
- To: Bjoern Hoehrmann <derhoermi@gmx.net>
- Cc: www-svg@w3.org
Quoting Bjoern Hoehrmann <derhoermi@gmx.net>:
> * Anne van Kesteren wrote:
>> That doesn't answer my question. Must display='none' be set on the element
>> itself? Can it be set on some ancestor? Can it be "indirectly" set
>> through CSS
>> (for UAs that support CSS)?
>
> The referenced subtree is considered in isolation for all purposes of
> SVG processing (style inheritance, event lister invocation, etc), so
> while you can set styles on ancestors of the referenced subtree, it
> won't have an effect on the instance tree.
Also not if these are properties that are inherited?
> Likewise, if you register an
> event listener on an ancestor, and a event is dispatched to an element
> instance, the listener won't be invoked.
That sounds logical, thanks.
> You rather pretend the isolated
> referenced subtree is a child of the use element for all purposes of SVG
> processing, so styles set on the use element or its ancestors do have an
> effect on the instance tree, just like event listeners on ancestors of
> the use element would be triggered when events are dispatched to an
> element instance.
Ok.
> So if your question is whether the display="none" in
>
> <g display="none">
> <rect xml:id="test" ... />
> </g>
> ...
> <use xlink:href="#test"
>
> is insufficient to disable rendering of the rect element and all its
> instances, then the answer is "yes".
Ok, makes sense I guess.
> Using style sheets to manipulate
> specified values rather than presentation attributes makes no difference
> whatsoever in SVG's styling model.
How about rect:hover { fill:lime } ? Or selectors that depend on the context
like circle + rect { fill:lime } ? Are the styles mapped at some point
(which?)
to the element they are applied to and then "copied" to the isolated
sub-tree of
the <use> element?
--
Anne van Kesteren
<http://annevankesteren.nl/>
Received on Thursday, 19 January 2006 12:17:55 UTC