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;
}
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;
}
Ich fand es ein bisschen umständlich, aber es ist definitiv ein funktionierender Weg, um die Farbe eines SVG inklusive mit dem Tag dynamisch zu ändern.
In der SVG-Datei können Sie den CSS-Inhalt folgendermaßen hinzufügen:
...
Dort können Sie @media Regeln verwenden, mit denen das SVG außerhalb seiner selbst nach kontextuellen Umständen suchen kann. Es gibt eine aspect-ratio Media-Feature, das auf die SVG-Box (z.B. das Tag) zutrifft. Sie können verschiedene Kontexte für das SVG erstellen, indem Sie die SVG-Box ein wenig strecken.
Auf diese Weise können Sie auch das Favicon dasselbe SVG machen, das auf der Website erscheint, aber in einer anderen Farbe. (In diesem Fall sollten keine anderen SVG-Boxen quadratisch sein.)
/* img horizontal gestreckt (wenn SVG quadratisch ist) */
@media (min-aspect-ratio: 1000/999) {
path {
fill: blau;
}
}
/* img vertikal gestreckt (wenn SVG quadratisch ist) */
@media (max-aspect-ratio: 999/1000) {
path {
fill: grün;
}
}
/* img mit genauen Größen */
@media (aspect-ratio: 86/74) {
path {
fill: rot;
}
}
/* Favicon mit hellem Browser-Design */
@media (aspect-ratio: 1/1) and (prefers-color-scheme: light) {
path {
fill: schwarz;
}
}
/* Favicon mit dunklem Browser-Design */
@media (aspect-ratio: 1/1) and (prefers-color-scheme: dark) {
path {
fill: weiß;
}
}
Das SVG muss Informationen zum viewBox enthalten, sodass das Strecken die Grafiken nicht beeinflusst. Beispiel:
Für eine bessere Auflösung über Manish Menarias (vielen Dank für deine Hilfe) Antwort, verwenden Sie stattdessen diesen Filtergenerator anstelle eines vorgeschlagenen Generators: https://angel-rs.github.io/css-color-filter-generator/
.filter-green{
filter: invert(48%) sepia(79%) saturate(2476%) hue-rotate(86deg) brightness(118%) contrast(119%);
}
Wenn Sie dies mit einer Inline-SVG-Datei machen möchten, zum Beispiel als Hintergrundbild in Ihrem CSS-Inhalt:
background: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='rgba(31,159,215,1)' viewBox='...'/%3E%3C/svg%3E");
Natürlich ersetzen Sie die ... durch Ihren Inline-Bildcode.
Es gibt einige Probleme mit Manish Menarias Antwort, wenn wir die Farbe Weiß umwandeln, zeigt sie Grau.
Also habe ich einige Anpassungen hinzugefügt, und das folgende Beispiel zeigt speziell, wie man die Farbe im Material-Icon ändert:
.draft-white{
filter: brightness(0) invert(1);
}
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.
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.
11 Stimmen
Das ist jetzt möglich. Einfache und funktionale Antwort hier: stackoverflow.com/a/53336754/467240
3 Stimmen
Hallo, du solltest wahrscheinlich die angenommene Antwort ändern (schau dir die am meisten gewählte an).
0 Stimmen
Um über CSS-Fähigkeiten zu verfügen, können Sie Font Icon verwenden. Überprüfen Sie meine Antwort stackoverflow.com/a/70479636/7221507
0 Stimmen
Sie können diese Website verwenden, um Ihr SVG auf eine bestimmte Farbe zu filtern codepen.io/sosuke/pen/Pjoqqp
0 Stimmen
Ist deine Frage damit beantwortet? Wie style ich SVG mit externem CSS?
0 Stimmen
Ich bin mir absolut sicher, dass diese Frage nur wiederbelebt wurde, weil ChatGPT.
0 Stimmen
Verwenden Sie einfach das 'fill'-Attribut für das SVG-Element.
0 Stimmen
Dies funktioniert meines Wissens nach im Jahr 2024 nicht. Die Farbe ändert sich nicht.