Ich denke, der beste und einfachste Weg ist, dies zu tun, vorausgesetzt, Sie müssen nur die letzten beiden Hauptversionen der wichtigsten Browser unterstützen, Android 9 Chrome, iOS 13 Safari, Desktop: Chrome, Firefox, Safari, Edge 87.
1 EDITAR : Komprimieren Sie zuerst alle SVGs, da sie sonst innerhalb von CSS kaputt gehen könnten, z.B. mit https://jakearchibald.github.io/svgomg/
2 Erstellen Sie eine separar Stylesheet und betten die svgs ein:
.icon-1 {
background-image: url('data:image/svg+xml;utf8,<svg>...</svg>');
}
.icon-2 {
background-image: url('data:image/svg+xml;utf8,<svg>...</svg>');
}
3 Lazy load this stylesheet with js - da diese Art von Stylesheets dazu neigt, sehr groß zu werden und normalerweise nicht benötigt wird, um das Rendern der Seite zu blockieren.
Ich entkam #
con %23
(ich weiß nicht, ob das wirklich notwendig ist), scheint es, als ob Sie nicht reguläre SVGs müssen auf andere Weise entkommen - ich habe allerdings nicht getestet, ob sie Inline-Style-Tags enthalten (diese Styles können ohnehin in Ihr Stylesheet verschoben werden)