Spec-Zone.ru › SVG

<use>

Базовая поддержка Широко доступно *

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она поддерживается браузерами с ⁨июля 2015⁩ года.

* Поддержка некоторых частей этой функции может различаться.

  • Подробнее
  • Полная таблица совместимости
  • Оставить отзыв

Элемент <use> берёт узлы из SVG-документа и дублирует их в другом месте. Эффект такой же, как если бы узлы были глубоко клонированы в недоступную DOM-модель, а затем вставлены туда, где находится элемент <use>, подобно клонированным элементам <template>.

Контекст использования

Категории Графический элемент, элемент со ссылкой на графический объект, структурный элемент
Допустимое содержимое Любое количество следующих элементов в любом порядке:
Элементы анимации
Описательные элементы

Атрибуты

href

URL элемента или фрагмента, который нужно продублировать. Подробнее о распространённых проблемах см. в разделе Примечания по использованию.
Тип значения: <URL>; Значение по умолчанию: отсутствует; Анимируемый: да

xlink:href Устарело

Ссылка <IRI> на элемент или фрагмент, который нужно продублировать. Если указаны и href, и xlink:href, используется значение, заданное в href.
Тип значения: <IRI>; Значение по умолчанию: отсутствует; Анимируемый: да

Предупреждение: начиная с SVG 2 атрибут xlink:href считается устаревшим и заменён атрибутом href. Подробнее см. на странице xlink:href.

x

Координата x дополнительного конечного преобразования смещения, применённого к элементу <use>.
Тип значения: <coordinate>; Значение по умолчанию: 0; Анимируемый: да

y

Координата y дополнительного конечного преобразования смещения, применённого к элементу <use>.
Тип значения: <coordinate>; Значение по умолчанию: 0; Анимируемый: да

width

Ширина элемента <use>.
Тип значения: <length>; Значение по умолчанию: 0; Анимируемый: да

height

Высота элемента <use>.
Тип значения: <length>; Значение по умолчанию: 0; Анимируемый: да

Примечание: width и height не влияют на элементы <use>, если только у указанного элемента не задан атрибут viewBox, то есть они влияют только в том случае, если <use> ссылается на элемент <svg> или <symbol>.

Примечание: начиная с SVG2, x, y, width и height являются геометрическими свойствами, то есть эти атрибуты также можно использовать в качестве свойств CSS для данного элемента.

Интерфейс DOM

Этот элемент реализует интерфейс SVGUseElement.

Пример

В следующем примере показано, как использовать элемент <use> для рисования круга с другим цветом заливки и обводки. В последнем круге stroke="red" будет проигнорирован, поскольку для myCircle уже задана обводка.

<svg viewBox="0 0 30 10" xmlns="http://www.w3.org/2000/svg">
  <circle id="myCircle" cx="5" cy="5" r="4" stroke="blue" />
  <use href="#myCircle" x="10" fill="blue" />
  <use href="#myCircle" x="20" fill="white" stroke="red" />
</svg>

Примечания по использованию

Большинство атрибутов элемента <use> игнорируются, если соответствующий атрибут уже задан у элемента, на который ссылается <use>. (Это отличается от поведения атрибутов стилей CSS, которые переопределяют значения, заданные «ранее» в каскаде.) Только атрибуты x, y, width, height и href элемента <use> могут оказывать описанное ниже влияние, если у указанного элемента уже задан соответствующий атрибут. Однако любые другие атрибуты, не заданные у указанного элемента, будут применены к элементу <use>.

Поскольку клонированные узлы недоступны, при использовании CSS для стилизации элемента <use> и его клонированных потомков следует соблюдать осторожность. Наследование свойств CSS клонированной DOM-моделью не гарантируется, если явно не запросить его с помощью наследования CSS.

В целях безопасности браузеры могут применять политику одного источника к элементам <use> и отказываться загружать междоменные URL в атрибуте href. В настоящее время не существует определённого способа задать политику междоменных запросов для элементов <use>.

Загрузка ресурсов из внешних файлов с помощью <use>

Можно загружать узлы из внешнего SVG-файла с помощью элемента <use>, указав путь к файлу, за которым следует фрагмент URL, ссылающийся на id загружаемого узла:

<svg>
  <use href="../assets/my-svg.svg#my-fragment"></use>
</svg>

Раньше фрагмент URL был обязателен, даже если требовалось загрузить весь SVG-документ. В таком случае id добавлялся к корневому элементу SVG:

<svg xmlns="http://www.w3.org/2000/svg" id="my-fragment">
  <circle cx="150" cy="100" r="80" fill="green" />
</svg>

Однако современные реализации были обновлены: теперь для загрузки всего внешнего документа можно указать ссылку без фрагмента URL (и id больше не требуется в корневом элементе SVG-документа):

<svg>
  <use href="../assets/my-svg.svg"></use>
</svg>

Информацию о поддержке браузерами см. в таблице Совместимость с браузерами.

Загрузка ресурсов из URI данных с помощью <use>

Загрузка ресурсов с помощью URI данных в атрибуте href считается устаревшей по соображениям безопасности. Это относится к <use href="data:...", а также к установке href с помощью метода set или setAttribute.

Информацию о поддержке браузерами см. в таблице Совместимость с браузерами.

Спецификации

Спецификация
Масштабируемая векторная графика (SVG) 2>
# UseElement>

Совместимость с браузерами

Настольные компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android WebView на iOS
use 1 12
1.5До версии 56 Firefox не полностью следует правилам каскадирования use (см. ошибку 265894). Исправление описано Амелией Беллами-Ройдс на StackOverflow.
11.5 3 18
4До версии 56 Firefox для Android не полностью следует правилам каскадирования use (см. ошибку 265894). Исправление описано Амелией Беллами-Ройдс на StackOverflow.
11.5 2 1.0 4 2
data_uri 22–120 ≤18 4–122 11.5 Нет 25–120 4–122 11.5 Нет 1.5–25.0 4 Нет
external_uri 22 13 4 11.5 7 25 4 11.5 7 1.5 4.4 7
height 1 12 1.5 15 3 18 4 14 2 1.0 4.4 2
href 50 12 1.5 37 12.1 50 4 37 12.2 5.0 50 12.2
omit_external_fragment 137 137 Нет 121 Нет 137 Нет 90 Нет Нет 137 Нет
systemLanguage 1 12 12 11.5 3 18 14 11.5 2 1.0 4 2
width 1 12 1.5 15 3 18 4 14 2 1.0 4.4 2
x 1 12 1.5 15 3 18 4 14 2 1.0 4.4 2
xlink_href 1 12 1.5 15 3 18 4 14 2 1.0 4.4 2
y 1 12 1.5 15 3 18 4 14 2 1.0 4.4 2

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/use

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API