Обновление: мне удалось как-то заставить его работать с flexbox, в этом случае мне пришлось наложить div поверх другого, чтобы произошло перекрытие.
HTML:
<div class="block">
<div class="image-wrapper">
<img src="https://placekitten.com/600/400"/>
</div>
<div class="div-wrapper">
<h1>There are some text here.</h1>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Saepe, ullam esse quia suscipit sapiente, provident expedita voluptatum illo facilis asperiores vitae. Atque aliquid et similique nostrum molestiae, dolores dignissimos beatae.</p>
</div>
</div>
<div class="block">
<div class="div-wrapper">
<h1>There are some text here.</h1>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Saepe, ullam esse quia suscipit sapiente, provident expedita voluptatum illo facilis asperiores vitae. Atque aliquid et similique nostrum molestiae, dolores dignissimos beatae.</p>
</div>
<div class="image-wrapper">
<img src="https://placekitten.com/900/300"/>
</div>
</div>
<div class="wrapper2">
<div class="image-overlay">
<img src="https://placekitten.com/600/400"/>
</div>
<div class="row-wrapper">
<div class="filler"></div>
<div class="text-block">
<div class="text-wrapper">
<h1>Hello World!</h1>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Non at sunt consequatur laborum molestiae quidem pariatur quibusdam! Ipsum tempore explicabo dolorum voluptate, asperiores sapiente quod qui modi, iusto assumenda adipisci.</p>
</div>
</div>
</div>
</div>
<div class="wrapper2">
<div class="image-overlay alt">
<div class="overlay-filler"></div>
<div class="image-me">
<img src="https://placekitten.com/600/400"/>
</div>
</div>
<div class="row-wrapper alt">
<div class="filler"></div>
<div class="text-block">
<div class="text-wrapper">
<h1>Hello World!</h1>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Non at sunt consequatur laborum molestiae quidem pariatur quibusdam! Ipsum tempore explicabo dolorum voluptate, asperiores sapiente quod qui modi, iusto assumenda adipisci.</p>
</div>
</div>
</div>
</div>
SCSS:
.block{
width: 600px;
margin: 0 auto;
border: 1px solid black;
}
.div-wrapper {
position: relative;
width: 100%;
height: auto;
text-align: center;
}
.image-wrapper{
width: 100%;
text-align: center;
}
.image-wrapper > img {
width: 100%;
}
/* Second Block */
.wrapper2{
width: 80%;
margin: 0 auto;
border: 1px solid purple;
height: 100vh;
}
.row-wrapper{
display: flex;
&.alt {
.filler{
order: 1;
}
}
}
.filler{
width: 50%;
}
.text-block{
width: 50%;
background: blue;
text-align: center;
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
}
.text-wrapper{
width: 50%;
}
.image-overlay{
width: 45%;
position: absolute;
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
&.alt{
width: 100%;
.overlay-filler{
width: 15%;
}
.image-me{
width: 45%;
img{
width: 100%;
}
}
}
}
.image-overlay > img {
width: 100%;
}
Объяснение: Как это работает, так это то, что в одном контейнере два div; overlay-div и row-wrapper (могли бы назвать его другими вещами). overlay-div имеет абсолютную позицию, которая будет располагаться поверх строки-оболочки.
row-wrapper - это flexbox с наполнителем и текстовым блоком.
Просто небольшое замечание, что для того, чтобы это работало, высота обертки должна быть установлена на 100vh.