Вопрос

Я хочу встроить 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/

Просто посмотрите на исходные файлы!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top