Можно ли изменить цвет элемента при наведении курсора мыши с html на Angular?

Цвет кнопки передается компоненту в виде строки и должен использоваться в стилях кнопок. Мне удалось настроить цвет фона и границы, но я не могу изменить цвет метки при наведении на нее курсора. Я нашел частичное решение, но оно также меняет и другие кнопки:

@for (button of toast.buttons; track button){
        <button
          [ngStyle] = "hovered === 1 ? {'background-color': button.color, 'border-color':button.color, 'color':button.color} : {'background-color': button.color, 'border-color':button.color, 'color':'#fff'}"
          (mouseover) = "hovered = 1"
          (mouseout) = "hovered = -1"
          (click) = "close()"
          class = "modal-button">
          {{button.text}}
        </button>
      }

Здесь я попробовал изменить цвет текста при наведении с помощью mouseover и mouseout, но это привело к следующему результату: Без наведения:

Можно ли изменить цвет элемента при наведении курсора мыши с html на Angular?

При наведении:

Можно ли изменить цвет элемента при наведении курсора мыши с html на Angular?

Как видите, при наведении курсора на одну кнопку вторая тоже окрашивается.

Я пытался искать решения в интернете, но ничего вразумительного не нашел. Подскажите, есть ли способ избежать такого результата? Например, передача значения переменной button.color в файл CSS или иная обработка наведения.

почему бы просто не использовать селектор :hover на уровне CSS?

tacoshy 15.07.2024 13:52
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
1
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете добиться этого с помощью чистого CSS и :hover . Вы можете использовать CSS-переменные для внедрения цвета в CSS.

.modal-button {
  background-color: var(--modal-button-color);
  border-color: var(--modal-button-color);
  color: #fff;
}

.modal-button:hover {
  color: var(--modal-button-color);
}

Шаблон:

@for (button of toast.buttons; track button){
  <button
    [style.--modal-button-color] = "button.color"
    (click) = "close()"
    class = "modal-button">
    {{button.text}}
  </button>
}

Спасибо! Этот метод помог мне решить мою проблему.

Ника Долгирева 15.07.2024 14:04

Другие вопросы по теме