Hi noRiddle,
spinnen wir das doch mal mit getimagesize() weiter.
Wir bekommen also für das erste oder auch für alle Sliderbilder die Werte von Breite und Höhe.
Ins CSS können wir die nicht schreiben. Also wäre doch die einzige Möglichkeit das ins Template in den entsprechenden image-Tag zu schreiben. Soweit so gut. Jetzt habe ich da im Slider eine Breite von 1400px und eine Höhe von 490px stehen.
Da du nicht bei jedem Browser-Resize die Größe abfragen willst muss ich also der festen Höhe und festen Breite im CSS entgegenwirken mit einer max-width von 100% und einer height von auto. Soweit denke ich auch klar. Da ich die Werte im image-Tag überschreiben muss auch mit einem important.
Nächstes Problem ... die Bilder werden geladen ... wie wir alle wissen kommt das Javascript zum Schluss. Da der übergeordnete Container aber kein festes Seitenverhältnis hat werden erstmal für den Bruchteil von Sekunden alle Bilder untereinander geladen und auch angezeigt. Ich kann ja nicht absolut positionieren da ich im CSS kein Seitenverhältnis für den übergeordneten Container habe. Und relativ positionierte Bilder werden mir demnach untereinander angezeigt bis zu dem Zeitpunkt wo das Javascript zündet.
Das gibt ein dickes CLS.
Ergo ... ich brauche auch das Seitenverhältnis um das dem übergeordneten Container mitgeben zu könne. Ich habe Höhe und Breite ... damit kann ich das berechnen. Da ich aber nicht ins CSS schreiben kann muss ich das als inline-CSS schreiben.
Soweit auch noch machbar.
Mit aspect-ratio wollte ich hier noch nicht arbeiten da es doch in einigen Browsern noch nicht sauber funktioniert. Wäre aber an der Stelle auch egal. Ob mit dem Padding-Hack oder aspect-ratio macht im Endeffekt keinen Unterschied.
Jetzt kommen wir zum Breakpoint wo sich das Seitenverhältnis ändert ... in unserem Fall die 600px. Ich brauche also eine neue Breite, eine neue Höhe und ein neues Seitenverhältnis. Ich kann das aber nicht als inline-CSS schreiben da hier media-queries nicht funktionieren.
Alles in allem ... wenn überhaupt machbar wird das alles andere als einfach und ich weiss jetzt nicht welche Auswirkungen getimagesize() auf die Performance hat. Du siehst also schon ... das waren auch schonmal unsere Gedanken.
Mit der aktuellen Lösung gehst du ins CSS und änderst das Seitenverhältnis ... fertig.
Markus
Nachtrag weil es mir gerade noch einfällt ...
Wir haben hier jetzt noch nicht die Spezialisten mit ins Kalkül gezogen, die es nicht schaffen 4 Slider-Bilder in der gleichen Größe hochzuladen.