У вас переполнение. Вы определили высоту как 900px
, и для каждого блока у вас есть 160px
отступа сверху / снизу, таким образом, 800px
заполнения, и если мы рассмотрим границу плюс содержимое плюс заголовок, у нас будет больше 900px
.
Вместо отступов вы можете использовать flex:1
для растягивания элементов, а затем использовать flexbox внутри них для центрирования текста:
body {
margin: auto 0;
}
#navbar {
display: flex;
flex-direction: column;
border: solid;
background: grey;
height: 900px;
width: 200px;
text-align: center;
}
.nav-link {
text-decoration: none;
border: solid;
flex:1;
/*to center the text*/
display:flex;
align-items:center;
justify-content:center;
}
<nav id="navbar">
<header>"A dissertation on fast food"</header>
<a class="nav-link" href="Steak">here</a>
<a class="nav-link" href="Steak">here</a>
<a class="nav-link" href="Steak">here</a>
<a class="nav-link" href="Steak">here</a>
<a class="nav-link" href="Steak">here</a>
</nav>