Hintergrundbild aus svg-bibliothek
bearbeitet von
Hallo Mike vh,
> ich will das allerdings nicht über umwege mit diesem <view> machen...
Dein Wille ist hier nicht von Belang. Ich will auch, dass mein Computer bestimmte Dinge tut. Aber wenn ich ihm das anders beibringe, als er es haben will, dann schmollt er mich nur an.
Das <view> Element ist wohl die Grundvoraussetzung. Der Fragment-Identifier wählt einen view (also Bildausschnitt) aus, der anzuzeigen ist. Insofern ist das kein Umweg, sondern die passende SVG-Vokabel zur Definition von "Welches Sprite ist wo".
Zu beachten: Die width- und height-Angaben auf dem SVG-Element UND die background-size im HTML-Element muss das gleiche Seitenverhältnis haben wie die viewBox-Breite und -Höhe in den <view> Elementen. Andernfalls kann es passieren, dass Sprite-Teile sichtbar sind, die außerhalb des view liegen, denn das view-Element schneidet außerhalb liegende Teile des SVG nicht weg.
Bei einem img Element ist sowas mit der aspect-ratio Eigenschaft gut lösbar, aber für background-image gibt es das nicht. Was aber geht, ist "contain" als background-size Angabe. Dann wird der View-Bereich so groß dargestellt, dass er vollständig ins Element passt, und was außerhalb ist, wird nicht gezeigt.
Rot: <https://wiki.selfhtml.org/images/6/62/Sprites-mit-View.svg#rot>
Blau: <https://wiki.selfhtml.org/images/6/62/Sprites-mit-View.svg#blau>
URLs gelten, bis jemand eine neue Bildversion hochlädt. [Bild im Wiki](https://wiki.selfhtml.org/images/6/62/Sprites-mit-View.svg)
_Rolf_
--
sumpsi - posui - obstruxi