Вероятно, это не лучшая идея для переключения реальных таблиц стилей. Вам, вероятно, будет лучше, если вы установите класс CSS на очень высоком уровне, а затем переключите этот класс с помощью Javascript. Затем вы можете поместить все правила CSS в один файл и просто использовать селекторы вроде (упрощенно):
<svg xmlns="http://www.w3.org/2000/svg" class="someclass">
<style>
.someclass .mypath { stroke: blue; }
.someotherclass .mypath { stroke: red; }
</style>
<path d="M150,100 H50 V300 H150 M250,300 H300" class="mypath" />
</svg>
Вы знаете, что я имею в виду? Это как конструкция if ... else. Если это потомок someclass
, сделайте его синим, в противном случае сделайте его красным.
Тем не менее, я слышал, что у некоторых браузеров есть проблемы с внешними таблицами стилей в документах SVG.