У вас это почти получилось, вы просто упускаете пару правил CSS:
.container {
display: flex;
justify-content: space between;
flex-wrap: wrap; /* added - this tells Flex to wrap onto a new line, if there is no space. */
}
.column {
display: inline block;
padding: 0.5em;
display: block;
width: 33.333%;
box-sizing: border-box; /* added - this changes the way padding is applied, so it always stays at 33.33%, regardless of padding */
}
Кроме того, если вы хотите, вы можете добавить этот стиль, чтобы он выглядел немного лучше:
.column img {
display: block; /* removes the spacing underneath the image */
width: 100%; /* sets the width to the parents width */
height: 100%; /* set the height to the parents height */
object-fit: cover; /* prevents image from stretching */
}
Демо: https://jsfiddle.net/yx6h4emn/