Visitar URL original
viewBox - SVG | MDN

This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

viewBox

Аттрибут viewBox определяет расположение и размеры окна отображения SVG.

Значение атрибута viewBox — это набор четырёх чисел: min-x, min-y, width и height, — разделённых пробелами и/или запятой, которые задают прямоугольник в пользовательском пространстве, стороны которого определяют границы окна отображения элемента SVG (не браузера).

Пример

html, body, svg {
  height:100%
}

svg:not(:root) {
  display: inline-block;
}
html
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
  <!--
  С относительными единицами, такими как проценты,
  размер квадрата не меняется в зависимости от
  значения viewBox
  -->
  <rect x="0" y="0" width="100%" height="100%" />

  <!--
  При больших значениях viewBox круг получается
  маленьким, потому что его радиус указан в абсолютных
  единицах: расстояние 4 получается маленьким относительно
  размера окна 100, указанного во viewBox
  -->
  <circle cx="50%" cy="50%" r="4" fill="white" />
</svg>

<svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">
  <!-- Также не зависит от viewBox, как и в предыдущем примере -->
  <rect x="0" y="0" width="100%" height="100%" />

  <!--
  С маленьким значением размера viewBox круг получается
  большим, потому что радиус 4 намного больше, если размер
  области отображения равен 10, чем если он равен 100
  -->
  <circle cx="50%" cy="50%" r="4" fill="white" />
</svg>

<svg viewBox="-5 -5 10 10" xmlns="http://www.w3.org/2000/svg">
  <!--
  Точка с координатами (0, 0) теперь является центром области
  отображения. 100% всё ещё приравнивается к полному размеру
  области отображения (10 на 10), поэтому квадрат выглядит
  сдвинутым в правый нижний угол
  -->
  <rect x="0" y="0" width="100%" height="100%" />

  <!--
  Так как точка (0, 0) находится в центре, а координаты круга,
  равные 50%, относительно размера области отображения (10 на 10)
  принимаются равными 5, круг оказывается с центром
  в правом нижнем углу
  -->
  <circle cx="50%" cy="50%" r="4" fill="white" />
</svg>

На отображение с viewBox также влияет атрибут preserveAspectRatio.

Примечание: При значениях width и height меньших или равных 0 элемент не отображается

Пять элементов используют этот атрибут: <marker>, <pattern>, <svg>, <symbol> и <view>.

marker

Для элемента <marker>, viewBox определяет расположение и размеры содержимого элемента <marker>.

Значение <number>?, <number>?, <number>?, <number>
Значение по умолчанию нет
Анимируемое Да

pattern

Для элемента <pattern>, viewBox определяет расположение и размеры содержимого шаблона.

Значение <number>?, <number>?, <number>?, <number>
Значение по умолчанию нет
Анимируемое Да

svg

Для элемента <svg>, viewBox определяет расположение и размеры содержимого элемента <svg>.

Значение <number>?, <number>?, <number>?, <number>
Значение по умолчанию нет
Анимируемое Да

symbol

Для элемента <symbol>, viewBox определяет расположение и размеры содержимого элемента <symbol>.

Значение <number>?, <number>?, <number>?, <number>
Значение по умолчанию нет
Анимируемое Да

view

Для элемента <view>, viewBox определяет расположение и размеры содержимого элемента <view>.

Значение <number>?, <number>?, <number>?, <number>
Значение по умолчанию нет
Анимируемое Да

Смотрите также