CSS-Sprites
Mit CSS-Sprites wird eine Technik benannt, die es dem Webdesigner erlaubt, eine Grafikdatei einzubinden, die aus vielen kleineren Grafiken besteht. Der Begriff setzt sich zusammen aus der Abkürzung für Cascading Stylesheets (CSS) sowie der Sprite-Technik, wie sie zum Beispiel in alten Videospielen benutzt wurde. Dokumentiert wurde diese Technik vermutlich das erste Mal 2004 auf A List Apart, einer englischsprachigen Webseite für Webdesigner[1][2]. Auch große Webseiten wie Google, Xing, Amazon oder Facebook nutzen diese Technik[3][2].
Prinzip
Mehrere kleinere Grafiken werden zu einer großen zusammengefasst. So könnten beispielsweise viele kleine Icons in einem Bild zusammengefügt sein. Mit Hilfe von CSS hat der Entwickler dann die Möglichkeit, nur einen kleinen Teil dieser Gesamtgrafik einzublenden. Dafür werden die CSS-Eigenschaften background-image
und background-position
verwendet.
Vorteile

Vermeiden von Verzögerung bei Bildwechseln
Das Austauschen eines Bildes ist in der Webseitenentwicklung nicht unüblich - so wird eine Grafik beispielsweise ausgetauscht, sobald der Mauszeiger über einem bestimmten Element liegt (der sogenannte Hovereffekt). Das Laden der zweiten Grafik erfordert jedoch immer eine gewisse Ladezeit - selbst bei schnellen Internetverbindungen nimmt der Benutzer eine kurze Verzögerung oder ein kurzes Flackern wahr. Bei der Sprite-Technik dagegen ist das zweite Bild bereits Teil der Gesamtgrafik, die zuvor für das erste Bild schon im Cache des Browsers liegt.
Verbesserung der Ladezeit
In den meisten Fällen kann durch eine konsequente Nutzung von Sprites eine Steigerung der Webseiten-Ladezeit erreicht werden: Der Browser lädt wesentlich schneller eine Datei mit 10km als zehn Dateien mit jeweiles 1kb. Das liegt daran, dass die HTTP-Spezifikation nur das Laden weniger Dateien zum gleichen Zeitpunkt vorsieht.
Weitere Vorteile
Mit der Sprite-Technik können auch sogenannte Image-Maps ersetzt werden. Hierbei handelt es sich um ein HTML-Element, dass Teile einer definierten Grafik anklickbar macht[4]. Außerdem ist es möglich, unter Zuhilfename von CSS 3 eine grafik animiert darzustellen - ohne das Verwenden einer GIF-Datei.[5]
Nachteile
Das Erstellen der CSS-Sprites ist recht aufwendig und steigt proportional mit der Anzahl der verwendeten Einzelgrafiken. Neben der Zusammenstellung mit Hilfe eines Bildbearbeitungsprogrammes muss der Entwickler auch in der Stylesheet-Datei für jedes Element die Hintergrundgrafik sowie die genaue Position angeben. Für die Zusammenstellung der Sprite-Dateien sowie die Erzeugung des Stylesheet-Codes existieren im Internet allerdings viele Generatoren, die dem Webdesigner das Erstellen der Sprites erleichtern[6].
Sprites können sich auch negativ auf die Ladezeit der Webseite auswirken - beispielsweise wenn die Webseite nur sehr wenige Grafiken anzeigen muss, dafür aber die gesamte Spritedatei geladen wird, die um ein vielfaches größer ist.
Weblinks
- CSS-Tricks.com Detaillierte Einführung in CSS-Spritess
- spriteMe Ein Generator, der als Bookmarklet eingebunden werden kann