Примерно в половине примеров svg, которые я вижу в Интернете, код обернут в простые простые <svg></svg>
теги.
В другой половине теги svg имеют много сложных атрибутов, таких как:
<svg
xmlns="http://www.w3.org/2000/svg"
version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink">
Мой вопрос: можно ли использовать простые теги SVG? Я пытался поиграть со сложными, и все отлично работает, если я их не включу.
<!DOCTYPE svg xmlns="www.w3.org/2000/svg">
это работает, но если я уберу xmlns или поменяю его на<!DOCTYPE svg xmlns="www.example.com">
это, не будет работать. Это почему?xmlns="http://www.w3.org/2000/svg"
Атрибут:<svg>
. 2xmlns:xlink="http://www.w3.org/1999/xlink"
Атрибут:<svg>
с помощью xlink: attribute. 2version="1.1"
Атрибут:1 Интернационализированные идентификаторы ресурсов (RFC3987)
2 Начиная с HTML5
3 Расширяемый язык разметки (XML) 1.0
4 Вероятно, до выпуска следующих основных версий.
5 SVG 2, Рекомендация кандидата W3C, 7 августа 2018 г.
источник
version
атрибут объявления xml (<?xml version...
) сversion
атрибутом<svg>
элемента. Первый из них касается версии языка разметки XML, а второй указывает версию SVG. Автор этого ответа совершил эту ошибку, сославшись на XML, а не на спецификацию SVG в ³. Я пытался исправить это, но некоторые идиоты отклонили редактирование.Я хотел бы добавить к обоим ответам, но у меня нет баллов, я добавляю новый ответ. В недавних тестах на Chrome (Версия 63.0.3239.132 (Официальная сборка) (64-битная Windows)) я обнаружил, что:
xhr.responseText
иelm.innerHTML
. Это не требует xmlns.xhr.responseXML.documentElement
иelm.appendChild()
илиelm.insertBefore()
. Этот метод создания встроенного SVG приводит к получению полупеченных результатов без объявления основного пространства имен SVG, как вxmlns="http://www.w3.org/2000/svg"
. <Svg> загружается в HTML, но функции уровня документа, напримерgetElementById()
, не распознаются в элементе <svg>. Я предполагаю, что это потому, что он использует XML-анализатор XMLHttpRequest вне HTML.источник
Об атрибуте версии SVG в MDN WebDoc говорится
PS: SVG 2 еще далеко не стал стандартом.
источник