Примените эффект пульса/дыхания к границе карты премьеры

У меня есть список сотрудников, отображаемый в классе карточек Primeng.

   <ng-template pTemplate = "gridItem">
          <div class = "grid grid-nogutter">
            <div *ngFor = "let employee of employees" class = "col-12 md:col-4">
              <div class = "card m-3 surface-border" [ngClass] = "{'alert-card': employee.hasAlert}">

Если я добавлю это в свой scss

.alert-card {
  border: 2px solid rgba(231, 8, 100, 0.55) !important;
}

Я правильно вижу границу (только когда добавляю !important в конец)

Теперь мне нужен импульсный эффект на этой границе, чтобы она медленно становилась красной, а красный циклически исчезал, поэтому я попробовал это

.alert-card {
  animation: fadeColor 1s infinite;
}

@keyframes fadeColor {
  0%, 100% {
    border-color: transparent;
  }
  50% {
    border-color: rgba(231, 8, 100, 0.55) !important;
  }
}

Альтернативно я пробовал это

.alert-card {
  border-width: 3px;
  border-style: solid;
  border-color: transparent;
  animation: fadeColor 1s infinite;
}

@keyframes fadeColor {
  0%, 100% {
    border-color: transparent;
  }
  50% {
    border-color: rgba(231, 8, 100, 0.55);
  }
}

тоже без эффекта. В этом случае я вижу серую рамку шириной не менее 3 пикселей (цвет по умолчанию), но эффект не применяется.

Но, к сожалению, это не имеет никакого эффекта. Заранее спасибо за ваш вклад.

Использование !важно; это не очень хорошая идея. Используйте специфичность и каскад для отмены других правил.

Paulie_D 10.08.2024 15:01

Вопросы, требующие помощи по коду, должны включать кратчайший код, необходимый для его воспроизведения, в самом вопросе, желательно в фрагменте стека с использованием значка <>. См. Как создать минимальный воспроизводимый пример.

Paulie_D 10.08.2024 15:02

@AnnaKlein, используя !important, это нормально, вам нужно применить его к правильному стилю, иначе он переопределит анимацию. Хороший вопрос!

Naren Murali 10.08.2024 17:01
Приемы 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
3
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы можете удалить !important и просто применить стили напрямую. Также удалите границу поверхности из класса.

Этот пример из w3 помог правильно настроить CSS.

Мы можем указать цвет границы по умолчанию (убедитесь, что он не установлен с помощью важного), тогда достаточно установить анимацию 50%, и она будет пульсировать.

div.alert-card {
  border-width: 2px !important;
  border-style: solid !important;
  border-color: transparent;
  animation: fadeColor 2s infinite;
  border-radius: 6px;
}

@keyframes fadeColor {
  50% {
    border-color: rgb(192, 25, 148);
  }
}

Демо-версия Stackblitz

Привет! Благодаря вашему вкладу я нашел проблему. Если я удалю границу поверхности из класса, все будет работать так, как ожидалось. Я действительно не понимаю почему, но, по крайней мере, сейчас он работает. Спасибо, что привели меня в нужное русло. Если вы обновите свой ответ и сможете ответить, почему граница поверхности вызывает такое поведение, я бы хотел пометить ваш ответ как принятый :)

Anna Klein 10.08.2024 19:59

@AnnaKlein, не стесняйтесь редактировать мой ответ и обновлять его!

Naren Murali 10.08.2024 20:11

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