Bildkomponente gibt bei mode fit falsche Masse aus und erzeugt Layout-Spruenge #139
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Symptom
Die Sektion „Wer ist Philipp Lütje" wächst bei 390 px Breite um 58 px, sobald ihr Bild geladen ist. Alles darunter rutscht nach. Gemessen:
Nebeneffekt: Das Gate
reduced_motionmisst dadurch 2,09 % bei 390 px (Schwelle 2 %) — es vergleicht eine gescrollte gegen eine ungescrollte Aufnahme, und der Versatz zählt als fehlender Inhalt. Das Gate ist hier der Bote, nicht der Schuldige.Ursache
templates/_components/core/image.twigschreibt die angeforderten Maße in diewidth- undheight-Attribute:Bei
mode: fit— dem Standard der Komponente — passt Craft das Bild in diese Box ein und behält sein Seitenverhältnis. Das erzeugte Bild hat deshalb andere Maße als die Box:600 × 1000info-hero.webp850 × 1000Hero-Photo.pngDer Browser reserviert vor dem Laden Platz nach dem Verhältnis aus den Attributen (0,60) und korrigiert beim Laden auf das echte Verhältnis (0,53). Das ist der Sprung.
Das betrifft jedes
fit-Bild der Seite, nicht nur diese eine Sektion — auch das Hero-Porträt, also das größte Bild über der Falz.Fix
Die tatsächlichen Maße des angewandten Transforms ausgeben statt der angeforderten. Craft liefert sie über
asset.getWidth(transform)/asset.getHeight(transform), oder sie lassen sich aus dem natürlichen Seitenverhältnis des Assets in die Box hineinrechnen.Zu beachten: bei
mode: cropstimmen die angeforderten Maße, dort darf sich nichts ändern. Undheight/widthdürfen nicht wegfallen — ohne sie reserviert der Browser gar keinen Platz, das wäre schlimmer.Akzeptanzkriterien
width/heightentsprechen beimode: fitdem tatsächlich erzeugten Bildmode: cropunverändertreduced_motionbei 390 px unter 2 %Refs #133, #137