Responsive Images — Zusammenspiel mit Hugo
Veröffentlicht am von Philipp Weyer in Querbeet
Im ersten Beitrag zu dem Thema (Erstellung) ging es darum, wie man die benötigten Bilder erstellt. Die Dateien haben wir jetzt also — wie bindet man sie nun so ein, dass je nach Browser/Displaygröße/Bandbreite/… das richtige Bild geladen wird? Das ist Thema in diesem zweiten Artikel!
In dem Moment, in dem der Browser eine Bilddatei beim Server anfragt, weiß es (noch) nicht, welche Abmessungen das Bild haben wird. Da die Seite noch nicht vollständig geladen ist, kann er auch maximal raten, wie groß das Bild auf der Seite dargestellt wird. Diese beiden Daten sind jedoch nötig, um das „korrekte“ Bild für die optimale Darstellung beim Besucher zu erreichen. Für den Fall, dass es sich um ein Foto im Hochformat handelt (portrait) wird der figure
-Umgebung noch eine entsprechende Klasse mitgegeben und die Größe den entsprechenden Bildwerten angepasst (siehe auch den ersten Artikel, dort wurden die Größen im Skript festgelegt).
Um auch für Text-basierte Browser einen Inhalt als Ersatz für die Bilder anzubieten, muss eine alt
ernative zum Bild bereit gestellt werden.
Neben der optimierten Darstellung fügt der Shortcode auch noch die notwendigen data
-Attribute ein, auf die jsLighbox
zugreift.
Sofern man sich ausreichend Mühe gemacht hat und dem Bild neben der Beschreibung noch eine schöne Überschrift (oder besser Unterschrift bei dieser Anzeige?) mitgegeben hat, soll diese auch noch angezeigt werden in einer figcaption
.
All dieser Code muss in einer Datei gespeichert werden, nennen wir sie picture.html
, und im Verzeichnis themes/NAME/layouts/shortcodes/
abgelegt werden. Anschließend können wir in unseren Artikeln Bilder sehr bequem einbinden:
Weitere Infos zur Verwendung von srcset
, sizes
und evtl. picture
gibt es beim kulturbanausen und auch wieder beim smashingmagazine.