Вот краткий пример, который работает в ограниченном сценарии, для которого я его протестировал.
При относительном позиционировании он будет заполнять столько места, сколько ему нужно. Возможно, вам нужно абсолютное позиционирование / размер, чтобы заставить его заполнить области, которые вам нужны. Однако обратите внимание, что другие элементы на вашей странице (обычно относительные или статически расположенные по умолчанию) вообще не будут знать о них, а просто будут перекрывать их или что-то еще.
Так что, если вы ищете просто фоновую вещь, где она всегда заполняет 50% / 50%, независимо от содержимого сверху, такого подхода абсолютного позиционирования может быть достаточно. Если вам нужно, чтобы эти две области следили за ходом страницы и уважали элементы вокруг них, то этого не произойдет.
body {
height: 100%;
min-height: 100%;
}
.first50 {
background: red;
color: #fff;
}
.second50 {
top: 50%;
background: blue;
color: #fff;
}
.height50 {
height: 50%;
min-height: 50%;
width: 100%;
position: absolute;
}
<div class="height50 first50">
text
</div>
<div class="height50 second50">
text
</div>