Задать вопрос
alexanderkx
@alexanderkx

Реально ли менять стили псевдоэлементов средствами js?

Недавно открыл для себя прекрасный метод getComputedStyle. По названию правда уже понятно, что ничего кроме как get из него не выжать, но может имеются интересные варианты решения моего вопроса?

Имею такие стили у :before элемента:

.el:before {
  color: green;
}


При помощи getComputedStyle прекрасно вытащил color у псевдоэлемента :before

var color = window.getComputedStyle(
	document.querySelector('.el'), ':before'
).getPropertyValue('color');


На выходе: rgb(0, 128, 0)

Очень захотелось его изменить на своё значение, но, ничего толкового из этого не вышло.

Буду благодарен за идеи.
Спасибо.
  • Вопрос задан
  • 1944 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Решения вопроса 3
Сделайте просто два стиля
.el:before {
content: 'text';
}
.green:before {
color: green;
}
.red:before {
color:red
}

<div class="el"></div>
А с помощью js уже меняйте классы green и red
Ответ написан
riot26
@riot26
<:З )~~
No you can't do that. The :before and :after pseudo-elements are not available in any way to your Javascript code.


подробнее
Ответ написан
нет, напрямую нельзя. Но вы можете изменять классы самого элемента, а там уже прописывать нужные значения
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы