В чем смысл этого?
.append("svg:svg")
Я видел это в HTML и в коде D3. Добавляет ли плагин SVG?
В чем смысл этого?
.append("svg:svg")
Я видел это в HTML и в коде D3. Добавляет ли плагин SVG?
В коде XHTML можно использовать пространства имен, чтобы отличать другие языки на основе XML, включенные в веб-страницу. Здесь перед тегом "svg" используется пространство имен "svg".
namespace:tagname
Это может быть полезно в случае, если два тега (например, в XHTML и SVG) имеют одинаковое имя, и вы хотите точно указать, к какому из них относится. Теги могут быть указаны с помощью атрибута xmlns
. Как вы знаете, документы XHTML начинаются с
<html xmlns="http://www.w3.org/1999/xhtml">
вы можете указать префикс как
<html xmlns:prefix="http://www.w3.org/1999/xhtml">
а затем вы будете использовать
<prefix:head>
<prefix:title></prefix:title>
</prefix:head>
Сходным образом вы можете использовать
<svg xmlns="http://www.w3.org/2000/svg">
вместо <svg>
, когда вы включаете свой графический файл svg. Затем все теги svg начинаются с префикса svgprefix
. Однако, если у вас есть дочерние SVG-узлы, для этого также потребуется этот атрибут xmlns
. В этом случае определение префикса, вероятно, будет проще.
Из документации для метода D3.js append()
:
Имя тега элемента может иметь префикс пространства имен, такой как "svg: text", чтобы создать "текстовый" элемент в пространстве имен SVG. По умолчанию D3 поддерживает пространства имен svg, xhtml, xlink, xml и xmlns. Дополнительные пространства имен можно зарегистрировать, добавив в
d3.ns.prefix
.
Обратите внимание, в частности, что префиксы пространства имен в D3.js не основаны на вашем документе, а предопределенная карта общих префиксов для фактического URL-адреса пространства имен.
Пространства имен - это способ, которым XML-документ (который включает XHTML , но не HTML) может включать в себя два атрибута или элементы с тем же именем (например, "грех", как в математическом вычислении синуса против "греха" ) как в моральной неудаче) без конфликта. Помещение элемента <svg>
в документ XHTML не имеет смысла, если этот элемент SVG не находится в пространстве имен SVG.
Для получения дополнительной информации прочитайте Пространства имен в XML.