Если я правильно понимаю ваш желаемый результат, вы захотите создать контейнер <div>
для красного и синего контейнеров и дать ему следующее:
display: flex;
flex-wrap: wrap;
align-items: flex-start;
height: 100%;
width: 50%;
Это можно увидеть здесь .
И скомпилировано в следующем:
.purple {
background: purple;
}
.green {
background: green;
}
.lightblue {
background: lightblue;
}
.darkred {
background: darkred;
}
.brown {
background: brown;
}
.orange {
background: orange;
}
.outer-wrp {
width: 100%;
height: 100vh;
display: flex;
flex-wrap: wrap;
align-items: flex-start;
}
.outer-wrp .left-side {
height: 100%;
width: 500px;
display: inline-block;
}
.outer-wrp .top-right {
width: calc(100vw - 500px);
vertical-align: top;
display: inline-block;
height: 90px;
}
.outer-wrp .inner-wrp {
width: calc(100% - 500px);
display: block;
height: calc(100% - 90px);
float: right;
}
.outer-wrp .inner-wrp .inner-left {
display: inline-block;
width: calc(100% - 200px);
height: 100%;
}
.blue-red {
display: flex;
flex-wrap: wrap;
align-items: flex-start;
height: 100%;
width: 50%;
}
<div class="outer-wrp purple">
<div class="left-side green"></div>
<div class="top-right lightblue"></div>
<div class="inner-wrp darkred">
<div class="inner-left brown"></div>
<div class="inner-right orange"></div>
</div>
</div>
Возможно, вам придется обновить .outer-wrp .inner-wrp
до calc(100vw - 500px)
или немного поиграть отсюда, чтобы удовлетворить ваши потребности.