Как вы выяснили, это можно сделать с помощью пользовательских свойств, и при условии, что совместимость с браузерами не является проблемой (я не знаю, есть ли проблемы с пользовательскими свойствами в псевдо-браузерах, особенно в Edge и Safari).элементы, но это стоит попробовать), пользовательские свойства являются идеальным способом настройки стилей псевдоэлементов с помощью JavaScript, так как обходной путь для CSSOM в настоящее время поддерживает только чтение стилей псевдоэлементов, но не их написание.
Если выВы беспокоитесь о совместимости браузера, вам придется сделать это старомодным способом, как описано здесь :
Вы всегда можете найти другие способы обойти это,например:
Применение стилей к псевдоэлементам одного или нескольких произвольных классов, а затем переключение между классами (см. ответ seucolega для быстрого примера) -это идиоматический способ, поскольку он использует простые селекторы (которые не являются псевдоэлементами), чтобы различать элементы и элементыСостояния, способ, которым они предназначены для использования
Управление стилями, применяемыми к указанным псевдоэлементам, путем изменения таблицы стилей документа, что гораздо больше похоже на хак
... с другими примерами из других ответов на тот же вопрос.