Ваша проблема в том, что вы думаете о сложном. вам не нужен justify-content: space-evenly;
, но вы должны позволить li-элементам расти с: flex-grow: 1;
Также вам не нужно использовать rgba
, если вы не используете прозрачность Вы можете использовать rgb
#menu{
display: flex;
margin-top: 0;
padding: 0;
}
#menu li {
height: 100%;
list-style-type: none;
background:rgb(5, 151, 242);
flex-grow: 1;
text-align: center;
}
#menu li:hover {
background:rgba(155, 5, 242);
}
#menu li a{
color:white;
text-decoration: none;
text-transform: uppercase;
line-height: 6.5;
width: 100%;
height: 100%;
display: block;
}
<ul id="menu">
<li><a href="page.php">Link 1</a></li>
<li><a href="page.php">Link 2</a></li>
<li><a href="page.php">Longer Link 3</a></li>
<li><a href="page.php">Link 4</a></li>
</ul>
РЕДАКТИРОВАТЬ:
Я сделал весь блок кликабельным по запросу дополнительно. Это делается путем добавления display: block;
к a
-элементам. Ссылка, как правило, является встроенным элементом, поэтому она переключается так, чтобы вести себя как элемент блока, который слушает настройки ширины / высоты, уже присутствующие в вопросе.