Имеется файл стилей:
.my-style{
fill:red;
stroke:black;
stroke-width:2;
}
Имеется SVG файл (спрайты SVG):
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve" display="none">
<defs>
<symbol id="circle" viewBox="0 0 50 50">
<circle class="my-style" stroke-miterlimit="10" cx="25" cy="25" r="24"/>
</symbol>
<symbol id="rect" viewBox="0 0 50 50">
<rect fill="red" stroke="black" stroke-width="2" stroke-miterlimit="10" width="48" height="48"/>
</symbol>
</defs>
</svg>
Встраиваю так:
<svg><use xlink:href="#circle"></use></svg>
<svg><use xlink:href="#rect"></use></svg>
Стиль первой фигуры вынесен в таблицу стилей, а стиль второй фигуры инлайновый.
Эта модель работает. В погоне за оптимизацией хотелось бы это все сжать в SVGZ и оптимизировать стили. Вот тут то и возникают сложности и недопонимания.
Первая сложность:
Если использую не вышеуказанную конструкцию с относительной ссылкой на SVG файл, а с абсолютной типа mysite/files/svg#circle, тогда все работает также корректно с условием, что стили фигур (кривые, обводки и пр.) инлайновые (встроены в фигуры), но если стиль фигуры вынесен в таблицу стилей, то фигура отображается просто черным цветом и стилей у нее нет, не применяются стили.
<svg><use xlink:href="mysite/files/svg#circle"></use></svg>
<svg><use xlink:href="mysite/files/svg#rect"></use></svg>
Даже если таблицу стилей встроить в SVG файл, ситуации будет та же. Почему так получается не пойму из-за недостаточной осведомленности в данном вопросе. Помогите пожалуйста разобраться почему так происходит и как это исправить, если можно.
Вторая сложность:
Вторая сложность вытекает из первой и в ней же кроется – при сжатии SVG в SVGZ происходит то же самое. Смог решить это только применив "инлайновые" стили к линиям, контурам и прочим элементам SVG. Если сжать SVG в SVGZ с инлайновыми стилями и правилами, вынесенными в отдельную таблицу, тогда разница в весе файлов вообще некритична, почти одинаковая, даже при первоначалльной разнице несжатых файлов в 50 Кб.
Суть вопроса описана выше, но если коротко, то почему не применяются правила, вынесенные в таблицу стилей в SVG при условии использования прямой ссылки на нужный объект SVG?