Hier ist eine Zusammenfassung aller Methoden, die ich gefunden habe, um SVGs in HTML-Vorlagen einzufügen, zusammen mit ihren Unterschieden und ihren Hauptvor- und Nachteilen:
((( 1 )))
/* in CSS */
background-image: url(happy.svg);
Auf diese Weise lässt weder die JS-Interaktion zu, noch könnte das CSS selbst eine feinere Kontrolle über die SVG-Teile haben.
((( 2 )))
Genau wie ((( 1 ))), lässt weder die JS-Interaktion zu, noch könnte das CSS selbst eine feinere Kontrolle über die SVG-Teile haben.
Methoden ((( 1 ))) und ((( 2 ))) sind nur gut, wenn Sie ein statisches svg wollen.
Hinweis: Wenn Sie das -Tag verwenden und in dem srcset
-Attribut ein SVG angeben und der Browser es nicht unterstützt, wird automatisch auf das src
-Attribut zurückgegriffen.
((( 3 )))
...
Diese Methode hat keine der oben genannten Nachteile von ((( 1 ))) und ((( 2 ))), jedoch macht diese Methode den Vorlagen-Code unordentlich und auch SVGs werden kopiert und eingefügt, sodass sie nicht in ihren eigenen individuellen Dateien sein werden.
((( 4 )))
ODER:
Bei Verwendung dieser Methode ist das SVG nicht über externes CSS zugänglich, kann jedoch über JavaScript zugänglich sein.
((( 5 )))
Verwenden Sie iconfu/svg-inject, um die SVGs in ihren eigenen individuellen Dateien zu behalten (um den Vorlagen-Code viel sauberer zu halten), fügen Sie jetzt die SVGs mit -Tags hinzu, und svg-inject verwandelt sie automatisch in Inline-SVGs, sodass sie sowohl von CSS als auch von JavaScript zugänglich sein werden.
Hinweis1: Diese Methode funktioniert auch, wenn img
s dynamisch hinzugefügt werden (mit JavaScript).
Hinweis2: SVGs, die mit dieser Methode hinzugefügt werden, werden auch von Browsern wie Bildern zwischengespeichert.
((( 6 )))
Verwenden einer einzigen SVG-Sprite-Datei, verwenden Sie dann -Tags, um sie einzufügen. Diese Methode ist auch ziemlich flexibel und hat den gleichen Effekt wie ((( 5 ))). Diese Methode (und einige mehr) sind in Aktion in diesem Video.
((( 7 )))
(React-spezifische Methode) Wandel sie in React-Komponenten um (oder schreibe eine Komponente, die sie lädt).
((( 8 )))
Laut MDN haben die meisten modernen Browser die Unterstützung für Browser-Plug-Ins abgelehnt und entfernt. Das bedeutet, dass es im Allgemeinen nicht ratsam ist, sich auf zu verlassen, wenn Sie möchten, dass Ihre Website im Browser des durchschnittlichen Benutzers funktioniert.
3 Stimmen
Schauen Sie sich einfach github.com/jonathantneal/svg4everybody an.
3 Stimmen
Theoretisch könntest du auch ein haben, von dem aus du auf andere SVGs verweisen möchtest. Dies kann z. B. mit erreicht werden.
2 Stimmen
Ich habe gerade einen Blogbeitrag zu diesem Thema verfasst: claude-e-e.medium.com/…
1 Stimmen
Sie können eine externe SVG-Datei selbst laden und in den DOM einfügen. Lassen Sie sich inspirieren vom Native JavaScript Web Component, über das ich gebloggt habe.