Finesse'nin yazdıklarının üzerine inşa ederek, svg'yi hedeflemenin ve gradyanını değiştirmenin daha basit bir yolu.
Yapman gereken bu:
- Degrade öğesinde tanımlanan her bir renk durağına sınıflar atayın.
- Düz sınıfları kullanarak bu durakların her biri için css'i hedefleyin ve durma rengini değiştirin.
- Kazanın!
Bunun yerine sınıfları kullanmanın bazı faydaları, :nth-child
duraklarınızı yeniden sıralarsanız bundan etkilenmemesidir. Ayrıca, her sınıfın amacını netleştirir - ilk çocukta mı yoksa ikinci çocukta mavi renge mi ihtiyacınız olduğunu merak etmeye başlayacaksınız.
Tüm Chrome, Firefox ve IE11'de test ettim:
.main-stop {
stop-color: red;
}
.alt-stop {
stop-color: green;
}
<svg class="green" width="100" height="50" version="1.1" xmlns="http://www.w3.org/2000/svg">
<linearGradient id="gradient">
<stop class="main-stop" offset="0%" />
<stop class="alt-stop" offset="100%" />
</linearGradient>
<rect width="100" height="50" fill="url(#gradient)" />
</svg>
Burada düzenlenebilir bir örneğe bakın:
https://jsbin.com/gabuvisuhe/edit?html,css,output
fill
bu şekilde:fill: url(../js/gradient.svg#MyGradient);
. Bu doğru yol mu?