2011-01-08 5 views
0

par exemple, nous avons defs et rect séparément, nous devons donc utiliser IDSVG widthout en utilisant ID

<defs> 
    <linearGradient id="MyGradient"> 
     <stop offset="0%" stop-color="#000" /> 
     <stop offset="100%" stop-color="#fff" /> 
    </linearGradient> 
</defs> 
<rect x="0" y="0" width="256" height="32" fill="url(#MyGradient)"/> 

Comment puis-je faire la même chose, mais sans utiliser ID (MyGradient). Peut-être avec JavaScript?

quelque chose comme ça

<rect x="0" y="0" width="256" height="32"> 
    <linearGradient> 
     <stop offset="0%" stop-color="#000" /> 
     <stop offset="100%" stop-color="#fff" /> 
    </linearGradient> 
</rect> 

ne fonctionne pas :(

+0

Cela serait (approximativement) possible en XAML, mais pas en SVG. – Joey

Répondre

1

Je ne crois pas que vous pouvez appliquer un dégradé en SVG sans définir le gradient et un lien vers elle avec un ID. Quelle raison Vous ne pouvez pas utiliser un ID?

Vous pourrez peut-être appliquer un dégradé CSS à l'avenir, mais je ne pense pas que cela fonctionne encore, et en tout cas, il n'est pas aussi multi-plateforme que l'utilisation de la norme Gradient SVG

+0

Je ne veux pas que mes identifiants interfèrent avec d'autres identifiants car je ne sais pas où mon code fonctionnera. Je veux quelque chose var grad =/* créer un dégradé (en difs) * /; var rect =/* crete rect * /; rect.fill.gradient = grad; – holden321

+0

Vous pouvez toujours préfixer les ID avec quelque chose d'unique qui ne risque pas de se heurter, comme "GRAD" ou quelque chose comme ça. –

+0

Oui, bien sûr, il est facile de deviner en utilisant des ID comme name + id + random, mais je trouve étrange d'utiliser des IDs s'ils ne sont pas nécessaires. Pas nécessaire car ils sont créés par JavaScript. – holden321