указывать высоту не обязательно. Т.к. элемент с фиксированным положением, можно указать ему границы
.menu {
position:fixed;
top:0;
bottom:0;
left:0;
overflow-y:auto;
}
Самое простое решение для прижатия кнопок в меню это будут флексы
.menu {
display:-webkit-flex;
display:-moz-flex;
display:-ms-flex;
display:-o-flex;
display:flex;
flex-direction:column;
position:fixed;
top:0; bottom:0; left:0;
width:200px;
}
.menu__main {
flex:1;
}
.menu__bottom {
flex-shrink:0;
height:50px;
}
<div class="menu">
<div class="menu__main"></div>
<div class="menu__bottom">%buttons%</div>
</div>