justify-content: space-between
автоматически заполнит пространство между элементами на оси Flex. Это означает, что: 1. у вас нет контроля над количеством пространства между элементами, браузер будет вычислять и заполнять так, как считает нужным; 2. заполнено только пространство на оси Flex (по умолчанию: строка; ось X), поэтому пространство под первой строкой не заполняется автоматически.
Решение состоит в том, чтобы вернуться к прежним нормам. Обратите внимание, что margin
ведет себя немного по-другому на гибких элементах, то есть margin: auto
заполнит доступное пространство с полем.
/* === RESERVATION === */
.reservation {
flex-direction: row-reverse;
}
/* === FLEXCONTAINER === */
.flexcontainer {
display: flex;
flex-direction: column;
align-items: center;
flex-wrap: wrap;
}
.flexcontainer p {
width: 500px;
}
.flexcontainer article {
display: flex;
}
.flexcontainer article img {
width: 500px;
margin: 24px;
margin-left: 0;
}
.flexcontainer article:nth-child(even) img {
margin: 24px;
margin-right: 0;
}
<section class="flexcontainer">
<article class="beliefs">
<img src="https://via.placeholder.com/500" alt="Our beliefs image" title="Our beliefs">
<div>
<h3>Our beliefs</h3>
<p>When eating...</p>
<p>We know...</p>
</div>
</article>
<article class="reservation">
<img src="https://via.placeholder.com/500" alt="reservation image" title="Reservation">
<div>
<h3>Reservation</h3>
<p>To fully...</p>
<p>This way...</p>
</div>
</article>
</section>