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;
}
... fill: currentColor stroke: currentColor ...
Dann können Sie die Farbe des Strichs und der Füllung über Ihren CSS-Inhalt steuern:
svg {
color: blue; /* Oder eine Farbe Ihrer Wahl. */
}
Pro und Kontra:
Geeignet wenn:
.icon {
-webkit-mask-size: cover;
mask-size: cover;
-webkit-mask-image: url(https://url.of.svg/....svg);
mask-image: url(https://url.of.svg/....svg);
background-color: blue; /* Oder eine Farbe Ihrer Wahl. */
width: 20px;
height: 20px;
}
}
Pro und Kontra
mask
CSS-Eigenschaft ist teilweise.Geeignet wenn:
Wenn die Farbe im Voraus bekannt ist, können Sie https://codepen.io/sosuke/pen/Pjoqqp verwenden, um den benötigten Filter zu finden, um Ihr SVG in die gewünschte Farbe zu ändern. Zum Beispiel, um das SVG in #00f
zu konvertieren:
.icon {
filter: invert(8%) sepia(100%) saturate(6481%) hue-rotate(246deg) brightness(102%) contrast(143%);
}
Wenn Ihre Originalfarbe nicht schwarz ist, fügen Sie der Liste der Filter brightness(0) saturate(100%)
voran, um sie zuerst in Schwarz umzuwandeln.
Pro und Kontra:
Geeignet wenn:
Bei Lösung 3 Vor- und Nachteile; es könnte sich lohnen hinzuzufügen, dass die Verwendung mehrerer Filter bei komplexen SVG-Bildern einen erheblichen negativen Einfluss auf die Leistung hat. Und sollte sparsam oder gar nicht verwendet werden.
Der C-Stil /* */
ist die einzige gültige Kommentarzeichenfolge in CSS. Andernfalls wird der Inhalt von CSS wahrscheinlich stillschweigend ignoriert. Ein CSS-Validator wird einen Fehler melden: "7 Parse Error // Oder eine Farbe Ihrer Wahl. width: 20px
"
Vielen Dank @PeterMortensen !! Das passiert, wenn man seinen Code auf Stackoverflow bearbeitet statt im Code-Editor ...
Ich habe eine Testseite hinzugefügt - um SVG über Filtereinstellungen zu färben:
Zum Beispiel,
filter: invert(0.5) sepia(1) saturate(5) hue-rotate(175deg)
Hochladen & Färben Sie Ihr SVG - Jsfiddle
Ich habe die Idee von: Austausch der Füllfarbe bei Image-Tag SVGs
Danke, du hast mich gerade vor mir selbst gerettet. .custom-disabled > svg {filter:invert(0.2) sepia(1) saturte(0) hue-rotate(0);}
hat genau das getan, was ich brauche, um das Symbol zu deaktivieren.
Diese Antwort hat mir geholfen, die Farbe für das Bild beim Überfahren zu ändern und den Hex-Farbcode in einen CSS-Filter umzuwandeln. Ich habe folgende Online-Hex-Farbe zu CSS-Filter Konverter gefunden. angel-rs.github.io/css-color-filter-generator isotropic.co/tool/hex-color-to-css-filter
body{ overflow:hidden; }
.icon {
--size: 70px;
display: inline-block;
width: var(--size);
height: var(--size);
transition: .12s;
-webkit-mask-size: cover;
mask-size: cover;
}
.icon-lightning {
--lightning-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath fill-rule='evenodd' d='M14.615 1.595a.75.75 0 0 1 .359.852L12.982 9.75h7.268a.75.75 0 0 1 .548 1.262l-10.5 11.25a.75.75 0 0 1-1.272-.71l1.992-7.302H3.75a.75.75 0 0 1-.548-1.262l10.5-11.25a.75.75 0 0 1 .913-.143Z' /%3E%3C/svg%3E");
background: black;
animation: 2s frames infinite linear;
-webkit-mask-image:var(--lightning-mask);
mask-image:var(--lightning-mask);
}
@keyframes frames {
25% { background: cyan; }
75% { background: gold; }
}
Hinweis - SVG-Masken werden in <em>Internet Explorer</em>-Browsern nicht unterstützt
Das ist toll. Allerdings verwenden wir bei diesem Ansatz das img alt-Feld für die Barrierefreiheit. Irgendwelche Ideen, wie man das wieder einführen kann? Danke!
Der einfachste Weg wäre, eine Schrift aus dem SVG zu erstellen, indem Sie einen Service wie https://icomoon.io/app/#/select oder ähnliches verwenden. Laden Sie Ihr SVG hoch, klicken Sie auf "Schriftart generieren", fügen Sie Schriftdateien und CSS-Inhalte in Ihre Seite ein und verwenden und gestalten Sie sie einfach wie jeden anderen Text. Ich verwende es immer so, weil es das Styling viel einfacher macht.
Aber wie im Artikel erwähnt, kommentiert von @CodeMouse92, vermasseln Icon-Schriften Bildschirmlesegeräte (und sind möglicherweise schlecht für SEO). Halten Sie sich also eher an die SVGs.
Icon-Schriften sind nicht schlecht für die SEO. Nicht zu verstehen, wie SEO funktioniert, ist das Schlechte für die SEO. Erfahren Sie mehr über Abschnitt 508, ADA und WCAG, und dann werden Sie verstehen, wie man Schriftsätze noch besser verwendet, basierend auf Dos und Don'ts. Das von Ihnen referenzierte Video wurde 8500 Mal mit 111 Likes angesehen. Nehmen Sie das als Religion?
Um die Farbe eines SVG-Elements zu ändern, habe ich eine Möglichkeit entdeckt, während ich mir das Google-Suchfeld-Suchsymbol unten angesehen habe:
.search_icon {
color: red;
fill: currentColor;
display: inline-block;
width: 100px;
height: 100px;
}
Ich habe ein _span_ Element mit "display:inline-block", Höhe, Breite und das spezielle Style "color: red; fill: currentColor;" für das span Tag verwendet, das vom untergeordneten svg Element geerbt wird.
Dies war die beste Antwort. Das Umschließen des SVG in einem Span oder Div und das Anwenden von fill: currentColor;
darauf ist der Schlüssel.
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.