Für jeden Post auf einer Website wird ein Headerbild angezeigt. Dieses Bild hat eine Breite von 100vw
und eine Höhe von 300px
. Ich würde gerne mehrere Versionen dieses Bildes entweder über das srcset
Attribut eines img
Tags oder ein vollwertiges picture
Element liefern (nicht sicher was an dieser Stelle, daher diese Frage).Implementieren von Responsive-Images mit dynamischer Breite, statischer Höhe und DPR-Bewusstsein
Dies würde so sein, eher einfach, das srcset
Attribut:
<img srcset="lg.jpg 1200w, md.jpg 992w, sm.jpg 768w, xs.jpg 320w" sizes="100vw" src="xs.jpg">
Das Problem entsteht, wenn ich für verschiedene Gerätepixelverhältnisse berücksichtigen will. Angenommen, ich habe 2x
und 3x
Versionen aller Bilder, die oben in srcset
aufgeführt sind.
Nehmen wir an, ich habe ein 2x
Telefon mit einem 320px
-weiten Ansichtsfenster (z. B. ein iPhone 5). Ich möchte, dass der Browser xs_2x.jpg
lädt. Ebenso sagen wir, ich habe einen 1x
Desktop mit einem Widescreen-Monitor. Ich möchte, dass der Browser lg.jpg
lädt.
Aber jetzt sagen wir, ich habe ein größeres Telefon, eines mit einem 3x
, 414px
-weiten Viewport (d. H. Ein iPhone 6 Plus). In diesem Fall möchte ich, dass mein Browser sm_3x.jpg
lädt. Aber mein Browser würde wahrscheinlich sm_2x.jpg
stattdessen laden, weil die Breite sm_2x.jpg
(1536 Pixel) näher an der Breite des Telefons (1242 Pixel) als die Breite sm_3x.jpg
(2304 Pixel) ist. Dies würde zu einem Bild führen, das nicht auf dem Gerät groß ist und eine Anforderung der Website verletzt.
Wie kann ich DPR-basierte dynamische Bilder mit dynamischer Breite und statischer Höhe implementieren?
Haben Sie sich mit einem Media-Tag befasst? – JaeGeeTee
@JaeGeeTee Was meinst du mit einem Media-Tag? Eine CSS '@ media' Anfrage? –
Ja, eine @ media-Abfrage. Entschuldigung, ich werde schlampiger als der Tag weitergeht. – JaeGeeTee