Один из способов установить цвет фона для состояний active
и hover
, различающихся для каждой кнопки, - использовать псевдокласс: : nth-child CSS:
.subNav > .nav-item:nth-child(1) > .nav-link:hover,
.subNav > .nav-item:nth-child(1) > .nav-link.active {
background-color: orange;
}
.subNav > .nav-item:nth-child(2) > .nav-link:hover,
.subNav > .nav-item:nth-child(2) > .nav-link.active {
background-color: green;
}
.subNav > .nav-item:nth-child(3) > .nav-link:hover,
.subNav > .nav-item:nth-child(3) > .nav-link.active {
background-color: red;
}
.subNav > .nav-item:nth-child(4) > .nav-link:hover,
.subNav > .nav-item:nth-child(4) > .nav-link.active {
background-color: blue;
}
См. этот стек для демонстрации.
<Ч />
Альтернативный метод - определить цвет активного состояния в вашей структуре данных:
this.lineas = [
{ image: 'assets/images/icon1.svg', url:'url1', titulo: 'title1', activeColor: 'lime' },
{ image: 'assets/images/icon2.svg', url:'url2', titulo: 'title2', activeColor: 'green' },
{ image: 'assets/images/icon3.svg', url:'url3', titulo: 'title3', activeColor: 'red' },
{ image: 'assets/images/icon4.svg', url:'url4', titulo: 'title4', activeColor: 'blue'}
];
и применить его к стилю фона ссылки, когда установлен класс active
:
<a #link [style.background-color]="isActive(link) ? linea.activeColor : null" ...>
isActive(link): boolean {
return link.classList.contains("active");
}
См. этот стек для демонстрации. Вы заметите, что я установил цвет по умолчанию для состояния hover
в этом случае:
.subNav > .nav-item > .nav-link:hover {
background-color: #c0c0c0;
}
Вам может потребоваться обработать события мыши enter
и leave
, если вы хотите применить пользовательские цвета фона, определенные в данных, когда указатель мыши находится над ссылкой.