Нужно управлять значением атрибута
fill
элемента
path
svg
вложенного в псевдо-элемент
::before
через свойство
background: url()
#target::before {background: url("data:image/svg+xml;charset=utf-8,%3Csvg ... path ... %3C/svg%3E");}
Для такого вложения эти правила не работают:
#target svg path {fill:#f00;}
#target::before svg path {fill:#f00;}
Смысл в том, что у меня десять вариантов закрашивания и я пытаюсь задать эти варианты так:
[data-color="f00"] #target svg path {fill:#f00;}
[data-color="0f0"] #target svg path {fill:#0f0;}
[data-color="00f"] #target svg path {fill:#00f;}
и т.д.
(data-color меняется через js)
Но это бесполезно. Додумался только описывать каждый вариант полностью:
[data-color="f00"] #target::before {background: url("data:image/svg+xml ... path ... fill='%23f00 ... ");}
[data-color="0f0"] #target::before {background: url("data:image/svg+xml ... path ... fill='%230f0 ... ");}
[data-color="00f"] #target::before {background: url("data:image/svg+xml ... path ... fill='%2300f ... ");}
и т.д.
Но получается страшное нагромождение. Может быть есть более изящный способ?