Hallo zusammen,
ich frage mal wieder nach was nach. Hänge da irgendwie fest und drehe mich im Kreis.
Folgendes:
<img class="f_rechts b-lazy" src="data:image/gif;base_64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://beispiel.rocks/beispiel.rocks/domin /bilder/kunden/6557/hauptbilder/klein/6557.jpg" width="100" height="75" alt="Ansicht Ferienwohnung 6557" />
Da wird also erst mal ein Platzhalterbild eingebunden (1x1px) und dann per Lazy-Load das eigentlich Bild von data-src nach src verschoben, wenn es im Sichtbereich ist. Das funktioniert auch soweit sehr gut.
Nur habe ich nun ein Problem mit den Größenangaben direkt beim IMG in Verbindung mit dem Platzhalter und meinem CSS.
Das
wird benötigt, ist aber nicht immer gleich. Die Größen sind abhängig vom Bild und können sich leicht variieren, je nachdem ob quer oder hochkannt, 4:3 oder 16:9 oder sonst was.
So, im CSS habe ich fürs responsitive Layout
Das brauche ich auch, damit sich die Bilder dynamisch an den Platz anpassen und zwar auch in der Höhe.
Und genau dieses "height: auto;" ist mein Problem. Auto ist zwar der Defaultwert von height, aber sobald das da ist wird die Höhenangabe height="75" im IMG-Tag ignoriert. Das führt nun dazu, dass das Platzhalterbild von 1x1px hochskaliert wird auf 100x100px, was natürlich höher ist als es soll und somit das Layout verschiebt. Sobald dann das echte Bild nachgeladen ist passt wieder alles, denn dort stimmt die Größe dann.
Umgehen kann ich das nur, wenn ich das "height: auto;" im CSS weg lasse, aber dann funktioniert die automatische Höhenanpassung bei Bildverkleinerung nicht mehr.
So, was nun tun? Einen einmal gesetzten height-Wert im CSS kann man ja nicht wieder entfernen. "None" oder so gibt es ja nicht und "auto" ist bereits der Standard.