2011-01-08 3 views
0

zum Beispiel haben wir defs und rect getrennt, so müssen wir IDSVG widthout mit IDs

<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)"/> 

verwenden Wie kann ich das Gleiche tun, aber ohne ID zu verwenden (MyGradient). Vielleicht mit JavaScript?

so etwas wie diese

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

funktioniert nicht :(

+0

Dies wäre (grob) in XAML möglich, aber nicht in SVG. – Joey

Antwort

1

Ich glaube nicht, Sie einen Gradienten in SVG ohne die Gradienten zu definieren und die Verknüpfung, um es mit einer ID anwenden können. Welchem ​​Grund Möchten Sie keine ID verwenden?

Möglicherweise können Sie in der Zukunft einen CSS-Farbverlauf anwenden, aber ich denke nicht, dass das noch funktioniert, und ist jedenfalls nicht so plattformübergreifend wie das normale SVG-Gradient

+0

Ich möchte nicht, dass meine IDs sich auf andere IDs auswirken, da ich nicht weiß, wo mein Code funktioniert. Ich möchte etwas var grad =/* Gradienten erstellen (in difs) * /; var rect =/* crete rect * /; rect.fill.gradient = grad; – holden321

+0

Sie könnten den IDs immer ein eindeutiges Präfix voranstellen, z. B. "GRAD" oder etwas anderes. –

+0

Ja, natürlich ist es leicht zu erraten, dass IDs wie name + id + random verwendet werden, aber ich finde es seltsam, IDs zu verwenden, wenn sie nicht benötigt werden. Nicht erforderlich, da sie von JavaScript erstellt werden. – holden321