Responsive Webdesign, Teil 3: Darstellung von Galerien und Videos

Die Entwicklung von Webprojekten hat bekanntermaßen ihre Tücken – besonders, wenn eine Website auch auf mobilen Geräten wie Smartphones oder Tablets dargestellt werden soll. Die Darstellung von Bildern ist ein wichtiger Bestandteil der Webentwicklung – und im Sinne der „Seperation of Concerns“ sind Bilder natürlich auch Teil des Inhalts einer Website und dienen nicht immer der Dekoration.
Responsive Webdesign und die Handhabung von einzelnen Bildern
Derzeit gibt es verschiedene Ansätze, aber keine wirklich befriedigende Lösung. Dreh- und Angelpunkt ist die Frage, wie man Bilder ausliefern kann, ohne unnötige Bandbreite zu verschwenden. Dabei wollen Entwickler natürlich zusätzliche Anfragen an den Server vermeiden. Kurzum: ein Thema, das Kopfzerbrechen bereitet.
Es gibt etliche gute Ansätze, um dieses Problem zu lösen, einige davon haben wir euch schon vorgestellt:
- Responsive Images: Erlöst uns ein Bildformat von all unseren Problemen?
- Mobify.js: Der einfache Weg zu Responsive Images
- Apropos: Open-Source-Framework für Responsive Images
Auch hierbei muss zwischen Notwendigkeit und Spielerei unterschieden werden, für einzelne Bilder, die sowieso kleiner dargestellt werden (zum Beispiel „Thumbnails“), kann das Prinzip von „Fluid Images“ durchaus ausreichend sein.
img{
max-width:100%;
}
Diese Anweisung sorgt dafür, dass Bilder das Layout nicht verschieben und ermöglicht durch Skalierung eine verkleinerte Darstellung des Bildes. Im umgekehrten Fall, also einer Vergrößerung, wird diese so lange durchgeführt, bis 100 Prozent der Bildbreite des Originals erreicht wurden. Unschärfe eines Bildes, aufgrund einer zu großen Darstellung, wird somit vermieden. „Hurra! – Das heißt, dass Bilder auch auf Smartphones kleiner und in Proportion dargestellt werden können!“. Das stimmt zwar, führt uns aber zum oben angesprochenen Problem. Es ist einfach nicht sinnvoll, ein großes Bild, dass für Desktop-Auflösungen optimiert wurde, auch auf Smartphones laden zu lassen, nur um dieses Bild dann verkleinert darzustellen. Ähnlich verhält es sich mit Fullscreen-Hintergrund-Bildern von Webseiten und mit Galerien.
Responsive Images mit Media-Queries

Responsive Webdesign: ein Media-Query. (Grafik: t3n.de)
Eine einfache und gute Lösung, um Bilder für spezifische Ausgabegeräte ausgeben zu lassen, ist die Idee, mit Media-Queries verschiedene Bilder für verschiedene Auflösungen zur Verfügung zu stellen. Das funktioniert aber nur mit Hintergrundbildern und ist daher unhandlich in der Praxis anzuwenden, man bedenke zum Beispiel Galerien – gerade ohne den Einsatz von JavaScript. Mithilfe der in HTML5 eingeführten data-*
-Attributen und in Kombination mit Media-Queries können Bilder für verschiedene Auflösungen ausgegeben werden. Ein gutes Beispiel dafür ist die Integration eines data-interchange
-Attributes in das Foundation-4-Framework von Zurb.
Erschwerend kommt aber die Browser-Inkompatibilität hinzu, denn der IE ignoriert zum Beispiel das max-with
-Attribut gänzlich. Um also diesem Problem der Ausgabe und Darstellung von Bildern Herr zu werden, wird auf JavaScript zurückgegriffen.
Responsive Images mit JavaScript
Backstretch ermöglicht euch, einzelne Bilder skaliert darstellen zu lassen. Dabei kann der Viewport sowohl als Referenz als auch ein beliebiges Block-Element angegeben werden. Die Backstretch-Demo zeigt euch ausführlich alle zur Verfügung stehenden Möglichkeiten.