У меня есть файл SVG inkscape, загруженный с помощью jquery-svg, к которому я пытаюсь применить кучу селекторов CSS, чтобы гарантировать, что все элементы определенных слоев имеют одинаковый цвет, и чтобы разрешить эффекты наведения курсора мыши на определенные слои. Кажется, у него нет проблем с соблюдением стандартных правил CSS для SVG, но он полностью игнорирует все, что связано с селектором [attribute="value"]
, например:
svg g path:hover {
fill: yellow !important;
stroke-width: 4px !important;
}
Однако, как и ожидалось, эти эффекты будут применяться при наведении курсора мыши:
svg g[inkscape\:label="footprint"] * {
fill: white !important;
pointer-events: none;
}
Полностью игнорирует это, в результате чего события: hover по-прежнему применяются к ним. У меня также есть стиль CSS, настроенный для применения правил к div легенды и SVG, как показано ниже:
svg g[inkscape\:label="social"] *,
div#legend div.legendEntry[name="social"] div.legendColor {
fill: orange !important;
background-color: orange;
}
который будет соответствовать div#legend div.legendEntry[name="social"] div.legendColor
без проблем, однако, похоже, не относится к селектору svg g[inkscape\:label="social"] *
.
Я предполагаю, что это как-то связано с jquery-svg или jQuery, изменяющими DOM после загрузки страницы - хотя это не было проблемой, когда я загружал данные SVG на страницу напрямую, без jquery-svg. Я могу применять стили напрямую через jquery-svg, однако было бы лучше иметь возможность указать ему применять существующие стили после загрузки файла SVG.