Как правильнее на css реализовать меню с разными иконками?

Сделать для каждого пункта меню свой класс (который в проекте вообще нигде больше не будет использоваться, кроме как для этого пункта) и в css добавить background-image мне кажется топорным решением

<ul class="menu">
    <li class="menu-item-1"><a href="#">Item-1</a></li>
    <li class="menu-item-2"><a href="#">Item-2</a></li>
    <li class="menu-item-3"><a href="#">Item-3</a></li>
    <li class="menu-item-4"><a href="#">Item-4</a></li>
    <li class="menu-item-5"><a href="#">Item-5</a></li>
</ul>

.menu li {
    background-image: url("sprite.png");
    background-repeat: no-repeat;
}

.menu-item-1 {
    background-position: x y
}
.menu-item-2 {
    background-position: x y
}
.menu-item-3 {
    background-position: x y
}
.menu-item-4 {
    background-position: x y
}
.menu-item-5 {
    background-position: x y
}


Можно ли как то поинтереснее / правильнее?
ps: да, я перфекционист)
  • Вопрос задан
  • 648 просмотров
Решения вопроса 3
можно применить псевдокласс nth-child, но такое решение будет поддерживаться в меньшем кол-ве браузеров
Ответ написан
cyber-jet
@cyber-jet
Шрифт, как это сделано, к примеру, в bootstrap, но так как у вас не чуть не хуже.
Ответ написан
alexey-m-ukolov
@alexey-m-ukolov Куратор тега CSS
Есть же немалая вероятность, что эти иконки в других местах будут использоваться - сделать для них отдельные классы и вставить как дочерние элементы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Можно картинки вставлять
<li><a href="#"><img src="img1.png"/> Item-1</a></li>
<li><a href="#"><img src="img2.png"/> Item-2</a></li>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы