Короткий ответ - использовать вложенный flexbox.
Удалите align-items: center;
из nav
, чтобы изгибаемые элементы могли растягиваться (поведение по умолчанию) до той же высоты, что и контейнер.
Сбросьте поле, добавив ul { margin: 0; }
, чтобы не было верхнего и нижнего полей.
Удалите все float
и inline-block
, они вам не нужны в макете flexbox.
Применить display: flex;
ко всем - nav
, ul
и li
.
Наконец добавить align-items: center;
li
для центрирования текста по вертикали.
nav {
display: flex;
justify-content: space-between;
background-color: black;
height: 65px;
}
nav ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
}
nav li {
display: flex;
align-items: center;
}
nav ul.item1 li {
background-color: red;
}
nav ul.item2 li {
background-color: green;
}
<nav>
<ul class="item1">
<li>#1</li>
<li>#2</li>
<li>#3</li>
</ul>
<ul class="item2">
<li>#4</li>
<li>#5</li>
<li>#6</li>
</ul>
</nav>
Обновление
Модифицированная версия только для левой стороны, полностью растягивается до высоты, а правая сторона ведет себя как встроенные элементы.
nav {
display: flex;
justify-content: space-between;
background-color: black;
height: 65px;
}
nav ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
}
nav li {
display: flex;
}
nav ul.item1 li {
align-items: center;
background-color: red;
}
nav ul.item2 {
align-items: center;
}
nav ul.item2 li {
background-color: green;
}
<nav>
<ul class="item1">
<li>#1</li>
<li>#2</li>
<li>#3</li>
</ul>
<ul class="item2">
<li>#4</li>
<li>#5</li>
<li>#6</li>
</ul>
</nav>