1296 Stimmen

Wie kann ich die Farbe eines 'svg'-Elements ändern?

Ich möchte diese Technik verwenden und die Farbe des SVG ändern, aber bisher war ich dazu nicht in der Lage. Ich benutze dies im CSS, aber mein Bild ist immer schwarz, egal was ich mache.

Mein Code:

.change-my-color {
  fill: green;
}

1 Stimmen

Ich bin kein SVG-Experte, aber hast du versucht, fill in background-color zu ändern?

7 Stimmen

@Megan Im svg wird die Hintergrundfarbe mit der 'fill'-Eigenschaft und der Rand mit 'stroke' (wie in Illustrator) festgelegt. w3.org/TR/SVG/propidx.html

21 Stimmen

CSS aus Ihrem HTML-Dokument wird nicht auf SVG-Elemente innerhalb von angewendet.

-2voto

Chester Fung Punkte 91
html {
  --iron-icon-fill-color-1: green;
  --iron-icon-fill-color-2: red;
  --iron-icon-stroke-color: white;
}

svg#icon-green {
  fill: var(--iron-icon-fill-color-1, currentcolor);
  stroke: var(--iron-icon-stroke-color, none);
}

svg#icon-red {
  fill: var(--iron-icon-fill-color-2, currentcolor);
  stroke: var(--iron-icon-stroke-color, none);
}

svg#icon {
  fill: var(--iron-icon-fill-color-x, currentcolor);
  stroke: white;
}

3 Stimmen

Sie erklären nicht warum. Was Sie tun, ist einfach das svg als Teil des Haupt-DOMs einzufügen.

0 Stimmen

Warum ist die Syntaxhervorhebung für den CSS-Teil so seltsam? Es scheint ordnungsgemäß markiert zu sein.

-3voto

elver Punkte 103

Mein Gebrauch ist mit Bootstrap Icons, indem ich deinen SVG-Pfad kopiere.

span{
    path{
        color: red;
    }
}

Ein Beispiel von SVG Bootstrap:

-3voto

symi khan Punkte 433

Der einfachste Trick ist, die Farbe beim Laden der Seite mit jQuery zu ändern.

      $(document).ready(function () { 
              $('svg').find('path').attr('fill', '#FFF');
      });

#FFF ist der Farbcode, den du setzen möchtest.

1 Stimmen

Dies ist ein ziemlich umständlicher Ansatz. Aber er kann verwendet werden, wenn Sie keinen direkten Zugriff haben, um das SVG tatsächlich im Code zu ändern.

0 Stimmen

& Dieser Code ist auch nützlich, wenn das Element nach Abschluss der Ajax-Anforderung geladen wird oder in der Ajax-Antwort.

-3voto

Kabeer Punkte 115

Sie können die SVG-Farbe mithilfe des fill-Attributs ändern

    Ihr SVG-Pfad hier

Überprüfen Sie hier die Demo

3 Stimmen

Offensichtlich, aber bitte lesen Sie die originale Frage sowie die vorherigen (39) Antworten, bevor Sie eine neue Antwort hinzufügen. Sie können fill nicht auf oder Elemente anwenden.

0 Stimmen

Du weißt, dass es der falsche Weg ist, SVG hinzuzufügen. Wer diese Frage gestellt hat, weiß bereits, dass diese Frage nur Zeitverschwendung ist, aber er hat sie trotzdem gestellt. Er kann diese Art von Frage stellen und ich kann die Antwort nicht richtig hinzufügen.

0 Stimmen

Es gibt viele Möglichkeiten, SVGs anzufügen und zu behandeln – manchmal kann man durch eine bestimmte Umgebung eingeschränkt sein (CMS, Framework, Bibliothek etc.). Ich gebe dir nicht die Schuld, da es in diesem Thread viele Antworten gibt, die die Fragen des OP vollständig ignorieren. Trotzdem solltest du immer auf das ursprüngliche Problem verweisen und wenn du das Problem nicht genau löst, erkläre, warum der OP erwägen sollte, einen alternativen Ansatz zu wählen (wie inline-SVG, native Webkomponenten verwenden, externe Verweise oder sogar Symbol-Icons usw.).

-3voto

Prottay Punkte 402

Wenn Sie die Farbe mit CSS ändern möchten, könnten Sie auch ein Online-Tool wie dieses verwenden: Ändern Sie die SVG-Farbe mit CSS-Filter

3 Stimmen

Diese Antwort ist nicht aussagekräftig, sie erklärt nicht, wie es gemacht wird, noch dass es sich um einen SVG-Filter handelt. Es wäre besser, den am meisten bewerteten Antwort zu kommentieren und einen Link zu diesem Tool anzugeben, das eine Alternative zum Codepen ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X