Spec-Zone.ru › SVG

Другой контент в SVG

Помимо графических примитивов, таких как прямоугольники и круги, SVG предлагает набор элементов для встраивания в изображения контента других типов.

Встраивание растровых изображений

Подобно элементу img в HTML, в SVG есть элемент image, выполняющий ту же функцию. С его помощью можно встраивать произвольные растровые (и векторные) изображения. Спецификация требует, чтобы приложения поддерживали как минимум файлы форматов PNG, JPEG и SVG.

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

<svg
  version="1.1"
  xmlns="http://www.w3.org/2000/svg"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  width="200"
  height="200">
  <image
    x="90"
    y="-65"
    width="128"
    height="146"
    transform="rotate(45)"
    href="https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/image/mdn_logo_only_color.png" />
</svg>

Встраивание произвольного XML

Поскольку SVG — это XML-приложение, вы, конечно, всегда можете встраивать произвольный XML в любое место документа SVG. Однако у вас не будет возможности определить, как окружающий SVG-контент должен реагировать на это содержимое. Фактически, в соответствии со спецификацией, средство просмотра никак на него не отреагирует — эти данные будут пропущены. Поэтому спецификация добавляет в SVG элемент <foreignObject>. Его единственное назначение — служить контейнером для другой разметки и носителем атрибутов стилей SVG (в первую очередь width и height, задающих пространство, которое займёт объект).

Элемент foreignObject — хороший способ встроить XHTML в SVG. Если у вас есть длинные тексты, HTML-макет подходит лучше и удобнее, чем элемент SVG text. Ещё один часто упоминаемый сценарий использования — встраивание формул с помощью MathML. Для научных приложений SVG это очень хороший способ объединить оба мира.

Примечание: Помните, что содержимое foreignObject должно быть доступно для обработки средством просмотра. Автономное средство просмотра SVG вряд ли сможет отображать HTML или MathML.

Поскольку foreignObject является элементом SVG, как и в случае с image, к нему можно применять любые возможности SVG, которые затем будут применяться к его содержимому.

© 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/Tutorials/SVG_from_scratch/Other_content_in_SVG

Spec-Zone.ru

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