Supponiamo di avere più tag SVG in cui in ognuno di essi viene definito un percorso di clip diverso con lo stesso ID.clipPath in più tag SVG
<svg id="svg1" width="200" height="200">
<defs>
<clipPath id="nodeclipper">
<rect width="100" height="100" x="0" y="0" />
</clipPath>
</defs>
</svg>
<svg id="svg2" width="200" height="200">
<defs>
<clipPath id="nodeclipper">
<circle cx="20" cy="0" r="40" />
</clipPath>
</defs>
</svg>
Ho anche creato un JSFiddle. Qual è il comportamento previsto? Ho pensato che un elemento potrebbe fare riferimento solo le definizioni all'interno il proprio tag SVG, ma che non sembra essere il caso:
- Chrome 26: Usa
circle
clip percorso due volte. - Firefox 17: utilizza il percorso di clip
rect
due volte. - Safari 6: restituisce uno
rect
e un percorso di clipcircle
come previsto.
Diventa strano quando si hide one of the SVG tags perché Chrome e Safari rilasciano quindi il clip-path
interamente.
So che funziona quando gli clipPath
hanno ID diversi ma dovrebbe essere in questo modo? Per quanto vedo il spec non contiene informazioni sul problema.
Invertito per il riferimento alla specifica. Sebbene sia tecnicamente corretto, è anche un comportamento piuttosto mentale nel contesto di come i documenti SVG sono incorporati nella pagina. Gli SVG sono spesso richiamati da una varietà di fonti e per far sì che l'utente debba analizzare e riproporre lo spazio dei nomi per evitare potenziali scontri. –
Inoltre, dato che ci sono due documenti svg separati (xml) all'interno di un documento html (non-xml) - rientra nella stessa specifica? –
C'è solo un documento. –