Вопрос
Я хочу встроить SVG в XUL. Я пытался использовать это руководство , которое требует вставки кода SVG в приложение XUL и это работает, но это не чисто. Я хочу, чтобы файлы SVG и XUL были отдельными, далее я хотел бы использовать отдельный файл CSS для части SVG, какие-нибудь примеры, как мы можем это сделать?
Решение
Вы можете использовать xul-оверлеи:
1) Объявите оверлей вверху вашего файла xul:
<?xul-overlay href="africa.svg"?>
2) Определите пустой элемент svg контейнера внутри вашего файла xul и присвойте ему тот же идентификатор, что и основному элементу svg во включаемом файле.
<box>
<svg:svg id="mapa" />
</box>
3) Не забудьте использовать отдельное пространство имен для части svg (см. svg: svg выше) и объявить его.
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:svg="http://www.w3.org/2000/svg">
4) Сделайте свой SVG-файл оверлеем, поместив объявление оверлея вокруг (боюсь, вы должны это сделать).
<overlay xmlns="http://www.w3.org/2000/svg">
<svg id="mapa">
...
</overlay>
Об отдельных файлах CSS: просто создайте два из них и включайте их где угодно - даже в оверлей svg.
Возможно, вы захотите заглянуть внутрь рабочего примера - небольшого теста по географии, который я создал несколько лет назад и только что обновил вчера, чтобы он снова заработал в текущих Firefox:
http://open-projects.net/~nico/countryquiz/ р>
Просто посмотрите на исходные файлы!