Мне нужно применить класс .shglow к нескольким текстам с цветной тенью, чтобы он мог светиться. Я пробовал использовать ключевой кадр с начальным свойством цвета или вообще без цвета. Как сделать так, чтобы это работало только с css?
<div class = "sh_3 shglow">Glow this red shadow</div>
<div class = "sh_4 shglow">Glow this blue shadow</div>
.sh_3{text-shadow:1px 1px 1px red}
.sh_4{text-shadow:1px 1px 1px blue}
.shglow{animation:shglow .5s infinite alternate;}
@keyframes shglow
{
0% {text-shadow:0 0 3px inherit;}
50% {text-shadow:0 0 13px inherit;}
100% {text-shadow:0 0 23px inherit;}
}
@BoltClock да, мы можем с CSS :) stackoverflow.com/a/49351158/8620333
@Temani Afif: Ну да, переменные.






Вы можете сделать это с помощью переменных CSS:
.sh_3 {
--c: red;
text-shadow: 1px 1px 1px var(--c);
}
.sh_4 {
--c: blue;
text-shadow: 1px 1px 1px var(--c);
}
.shglow {
animation: shglow .5s infinite alternate;
}
@keyframes shglow {
0% {
text-shadow: 0 0 3px var(--c, yellow);
}
50% {
text-shadow: 0 0 13px var(--c, yellow);
}
100% {
text-shadow: 0 0 23px var(--c, yellow);
}
}<div class = "sh_3 shglow">Glow this red shadow</div>
<div class = "sh_4 shglow">Glow this blue shadow</div>
<div class = "shglow">Default one</div>Вы также можете не указывать цвет, поэтому будет рассматриваться цвет по умолчанию, а цвет по умолчанию - это цвет элемента. Кстати, с помощью этого решения вы обязаны изменить цвет элемента.
.sh_3 {
color: red;
text-shadow: 1px 1px 1px;
}
.sh_4 {
color: blue;
text-shadow: 1px 1px 1px;
}
.shglow {
animation: shglow .5s infinite alternate;
}
@keyframes shglow {
0% {
text-shadow: 0 0 3px;
}
50% {
text-shadow: 0 0 13px;
}
100% {
text-shadow: 0 0 23px;
}
}<div class = "sh_3 shglow">Glow this red shadow</div>
<div class = "sh_4 shglow">Glow this blue shadow</div>
<div class = "shglow">Default one</div>
Без изменения HTML или использования JavaScript не обойтись.