Попробуйте использовать поля auto
, чтобы отодвинуть левый и правый элементы от среднего элемента.
(Кроме того, поскольку вы используете элемент HTML5 nav
и свойства CSS3, вы действительно неДля структурирования макета не требуется ul
. Вы можете существенно упростить код.)
nav {
display: flex;
align-items: center;
}
nav > * {
border: 1px solid red;
}
.nytl {
margin: 0 auto;
width: 189px;
height: 26px;
}
hr {
margin-top: 10px;
}
* {
padding: 0;
margin: 0;
}
<nav>
<a href="#">
<img src="https://img.icons8.com/material-outlined/16/000000/menu.png">
</a>
<a href="#">
<img src="https://img.icons8.com/material-rounded/16/000000/search.png">
</a>
<a href="#">SPACE & COSMOS</a>
<img src="https://lco1220.github.io/nyt_article/images/nyt-logo.png" alt="NewYorkTimes-Logo" class="nytl">
<button>Subscribe</button>
<button>Login</button>
</nav>
<hr>
Подробнее о полях auto
можно узнать здесь:
Вот еще один гибкий метод, который может оказаться полезным:
Теперь вы можете столкнуться с другой проблемой: Поскольку гибкие функции, такие как auto
поля, justify-content
и align-items
, работают за счет распределения свободного пространства, ваш средний элементне может быть идеально отцентрирован.См. Эти сообщения для получения дополнительной информации и решений: