There are explanations in the comments.
There we must, most likely, get rid of absolute positioning, as I don’t understand yet.
.head { float: left; width: 100%; background: #ddd; height: 200px; } .cont { background: #a1b1e1; position: absolute; bottom: 0; left: 0; right: 0; top: 200px; width: 100%; } .content { height: 100px; width: 500px; background: #aaa; margin: 0 auto; } <div class="head"> header </div> <div class="cont"> <div class="content"> content </div> </div> <!-- cont всегда должен растягиваться не завимо от контейнера .content, и нижняя его граница всегда снизу окна браузера, даже если .content будет меньше его Дайте контейнеру .content высоту 1000 у увидите что .cont не тянется -->