Подтвердить что ты не робот

В чем смысл svg: svg?

В чем смысл этого?

.append("svg:svg")

Я видел это в HTML и в коде D3. Добавляет ли плагин SVG?

4b9b3361

Ответ 1

В коде 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. В этом случае определение префикса, вероятно, будет проще.

Ответ 2

Из документации для метода 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.