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.

11voto

MD SHAYON Punkte 6992
  1. Methode 1

    Der einfache und effektive Weg:

    Öffnen Sie Ihre .svg-Datei mit einem Texteditor

    Geben Sie ein style-Attribut und füllen Sie es mit Farbe.

  2. Ein anderer Weg

    Füllen Sie Ihre Form mit Farbe. Hier habe ich rect Form fill="white".

            hintergrund

0 Stimmen

Der OP war sich der Attribute bewusst, fragte aber nach einer Lösung, die mit -Elementen funktioniert.

7voto

OXiGEN Punkte 1443

Wenn dasselbe SVG mehrmals mit unterschiedlichen Farben verwendet werden muss, definieren Sie den Satz von Pfaden innerhalb eines versteckten SVG, das als Masterkopie dient. Platzieren Sie dann neue Instanzen, die auf den Masterpfad mit ihren individuellen Füllungen verweisen.

Hinweis: Dieser Ansatz funktioniert nur mit inline Tags. Es funktioniert nicht mit Tags, die .svg Dateien laden.

:root {
  fill: gray;
}

.hidden {
  display: none;
}

svg {
  width: 1em;
  height: 1em;
}

7voto

Ali Besharati Punkte 693

Hier der schnelle und rasante Weg :)

body {
    background-color: #DEFF05;
}

svg {
    width: 30%;
    height: auto;
}

svg path {
    color: red;
    fill: currentcolor;
}

1 Stimmen

Warum abstimmen !? Diese Arbeit funktioniert gut, Sie können es im Demo sehen

6 Stimmen

Deine Antwort erklärt im Gegensatz zu anderen nichts: stackoverflow.com/a/20720935/3795597 stackoverflow.com/a/30419873/3795597 stackoverflow.com/a/69397734/3795597 und unzählige andere. Es funktioniert nur, weil du das SVG in das Hauptdokument einbettet.

6voto

Grv97 Punkte 63

Zum Beispiel in Ihrem HTML:

Verwenden Sie jQuery:

$("#struct1").css("fill", "");

4 Stimmen

Dies funktioniert nur, wenn Sie die SVG-Datei direkt im HTML einbinden. Ich habe Ihre Antwort bearbeitet, um dies klarer zu machen.

5voto

Amit Bodaliya Punkte 128

Schau dir diesen Code an. Es funktioniert.

CSS

svg {
   fill: white;
}

0 Stimmen

Warum wird der CSS-Teil so syntax-highlighted dargestellt?

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