Используйте CSS-переменную в SVG через <img>

У меня есть SVG, который я сейчас отображаю через <img src="foobar.svg">, Родительский HTML имеет некоторый CSS-код, который определяет переменные, которые мне нужны в SVG. SVG имеет <style> чтобы хотлинк это.

CSS-переменные, определенные в родительском элементе, кажутся недоступными для SVG. Есть ли способ заставить это работать? Я не могу просто скопировать CSS; Я мог бы, в крайнем случае, вставить SVG в HTML.

Текущие настройки что-то под мелодию

<html>
<head>
<link rel="stylesheet" href="the_css_that_defines_the_variables.css">
</head>
<body>
<img src="foobar.svg">
...

<svg>
<style type="text/css">svg { fill: var(--myvariable) }</style>
...
</svg>

1 ответ

Решение

Переменные не могут быть перенесены из одного документа в другой. В пределах одного HTML-документа переменные могут быть объявлены в строке style атрибут отдельных элементов, но это примерно, насколько вы можете пойти.

Если переменная должна быть CSS-переменной, вам нужно встроить этот SVG-файл, чтобы он мог ее использовать.

Другие вопросы по тегам