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)

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

Буду благодарен за идеи.
Спасибо.
  • Вопрос задан
  • 1712 просмотров
Решения вопроса 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.


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

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

Войти через центр авторизации
Похожие вопросы