Ich habe ein DIV, das mit CSS Flexbox auf die verfügbare Höhe skaliert wird. In diesem DIV ist ein Bild, das ich zusammen mit dem DIV in beiden Dimensionen skalieren möchte. Das heißt, es sollte skaliert werden, wobei das Seitenverhältnis beibehalten wird und die Dimensionen, die kleiner als die jeweilige DIV-Dimension sind, sollten zentriert werden.Flexbox Bildskalierung auf Höhe und Seitenverhältnis beibehalten
Ich kann das Bild der Breite des DIV, aber nicht der Höhe folgen lassen. Portraitbilder entweichen daher aus den DIV-Grenzen.
Hier ist eine jsFiddle, um das Problem zu demonstrieren.
html, body {
height: 100%;
margin: 0;
}
.container {
display: flex;
flex-direction: column;
height: 100%;
}
.box {
flex: 1 1 auto;
display: flex;
justify-content: center;
align-items: center;
}
.box img {
width: auto;
height: auto;
max-width: 90%;
max-height: 90%;
}
<div class="container">
<div class="box"></div>
<div class="box" style="background: pink;">
<img src="//dummyimage.com/300" />
</div>
<div class="box"></div>
</div>
Möchten Sie das Bild der Höhe anpassen, auch wenn es natürlich kleiner ist? (Sie verwenden ein ziemlich großes Bild in Ihrem Beispiel, also bin ich mir nicht sicher) –
Das erste, was ich gerne erreichen möchte, ist, dass es nach Bedarf skaliert. – languitar
Nein, sorry, das Bild muss sein ursprüngliches Seitenverhältnis beibehalten. Wenn dieser sich von dem des Containers unterscheidet, sollte das Bild entlang der Achse zentriert werden, die nach der Größenänderung kleiner als die des Containers ist. – languitar