display:grid
делает именно то, что вы хотите.
И 33.3vw
- длина стороны самого большого квадрата, который помещается в пространство.
html,
body {
height: 100%;
margin: 0;
}
body {
display: grid;
grid-template-areas: 'rect rect rect' 'left center right';
grid-template-rows: auto min-content;
}
.rect {
grid-area: rect;
}
.left {
grid-area: left;
width: 33.3vw;
height: 33.3vw;
}
.center {
grid-area: center;
width: 33.3vw;
height: 33.3vw;
}
.right {
grid-area: right;
width: 33.3vw;
height: 33.3vw;
}
/*just to highlight the position*/
div {
border: thin black solid;
}
<div class="rect">Rectangle</div>
<div class="left">Left</div>
<div class="center">Center</div>
<div class="right">Right</div>