I have 3 images put into a flexbox with column direction. I want those 3 images each being displayed within their own square containers (1:1 aspect ratio). However, it’s not working because of the height. (So three images, each displayed as a square)
If I change flex direction to row, things are working correctly. If I use grid layout for Images with grid-template-row: repeat(3, 1fr), it’s also working correctly.
Why flex with column direction doesn’t work? Thanks!
.Container {
width: 258px;
}
.Images {
display: flex;
flex: 1 1 25%;
flex-direction: column;
}
.ImageContainer {
flex: 1 1 calc(100%/3);
aspect-ratio: 1/ 1;
}
.Image {
display: block;
object-fit: contain;
width: 100%;
height: 100%;
}
<div class="Container">
<div class="Images">
<div class="ImageContainer">
<img class="Image" src="https://www.simplilearn.com/ice9/free_resources_article_thumb/css-advance-3.JPG">
</div>
<div class="ImageContainer">
<img class="Image" src="https://www.simplilearn.com/ice9/free_resources_article_thumb/css-advance-3.JPG">
</div>
<div class="ImageContainer">
<img class="Image" src="https://www.simplilearn.com/ice9/free_resources_article_thumb/css-advance-3.JPG">
</div>
</div>
</div>
2
Answers
try this way maybe it could help solve the problem
move the
aspect-ratio
to the image instead