Just use the flexbox system. I wrapped around the navigation bar and the red container. Remove the absolute position of the red rectangle!
@media (min-width: 768px) {
#navWrapper {
height: 100vh;
display: flex;
flex-direction: column;
justify-content: space-between
}
#navbar {
flex-grow: 1;
}
}
.push-to-bottom {
height: 100px;
width: 100%;
flex-shrink: 0;
}
flexbox (nav red one) , flex-grow of 1. - ! flex-shrink: 0
, 100 !
html ( )
<div id="navWrapper" class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="#">Brand Name</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-font-family">
<li><a href="#">Nav 1</a></li>
<li><a href="#">Nav 2</a></li>
<li><a href="#">Nav 3</a></li>
<li><a href="#">Nav 4</a></li>
<li><a href="#">Nav 5</a></li>
<li><a href="#">Nav 6</a></li>
<li><a href="#">Nav 7</a></li>
</ul>
</div>
<div align="center" class="hidden-xs push-to-bottom" style="background-color: red; color: black">Hello!</div>
</div>
:
https://jsfiddle.net/545cdqb2/8/