У меня есть страница, содержащая несколько файлов SVG. Чтобы синхронизировать стиль этих SVG файлов, я хотел создать единую таблицу стилей, чтобы хранить всю информацию о стилях.
Однако, если включить SVG, как показано ниже, CSS не будет применяться. Любой, у кого есть решение, или просто невозможно связать с другими (CSS) файлами в SVG, на которые ссылается <img src="..." />
?
См. примерный код ниже. При загрузке pic.svg
непосредственно в браузере применяются все стили, и можно увидеть зеленый прямоугольник. Но при открытии page.htm
все, что нужно увидеть, это черный прямоугольник. Таким образом, очевидно, что ни один из определенных стилей не был применен.
page.htm
<!DOCTYPE html>
<html>
<body>
<img src="pic.svg" style="width: 100px; height: 100px;" />
</body>
</html>
pic.svg
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<?xml-stylesheet type="text/css" href="styles.css" ?>
<svg version="1.1"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 100 100"
>
<rect x="10" y="10" width="80" height="80" />
</svg>
styles.css
rect {
stroke: black;
fill: green;
}
EDIT
Из ответа, что на короткое время появился здесь, я получил эту ссылку на спецификацию и следующую цитату. По-моему, это говорит о том, что приведенный выше код должен работать!
Автономный документ SVG, встроенный в HTML или XML-документ с элементами "img," (HTML) или "образ (SVG)
[...]
Цитирование из вашей ссылки" Таблицы стилей, определенные в любом месте документа SVG, на который ссылаются (в элементах стиля или атрибутах стиля, или во внешних таблицах стилей, связанных с инструкцией по обработке таблиц стилей ) весь документ SVG, но не влияют на ссылочный документ (возможно, HTML или XHTML) ".