Spec-Zone.ru › CSS

Свойство CSS `r`

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

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

Свойство r CSS задаёт радиус круга. Его можно использовать только с элементом SVG <circle>. Если оно указано, то переопределяет атрибут r круга.

Примечание: Свойство r применяется только к элементам <circle>, вложенным в <svg>. Оно не применяется к другим элементам SVG, элементам HTML или псевдоэлементам.

Синтаксис

/* Length and percentage values */
r: 3px;
r: 20%;

/* Global values */
r: inherit;
r: initial;
r: revert;
r: revert-layer;
r: unset;

Значения

Значения <length> и <percentage> задают радиус круга.

<length>
Абсолютные или относительные длины могут быть выражены в любых единицах, допустимых для типа данных CSS <length>. Отрицательные значения недопустимы.
<percentage>
Проценты отсчитываются от нормализованной диагонали текущей области просмотра SVG, вычисляемой по формуле <width>2+<height>22.

Формальное определение

Исходное значение 0
Применяется к <circle> в элементе <svg>
Наследуется нет
Проценты отсчитываются от нормализованной диагонали текущей области просмотра SVG
Вычисленное значение указанное значение в процентах или абсолютная длина
Тип анимации по типу вычисленного значения

Формальный синтаксис

r = 
  <length> |
  <percentage>

Примеры

Задание радиуса круга

В этом примере в SVG есть два одинаковых элемента <circle>, каждый с радиусом 10 и одинаковыми координатами по осям x и y для центральных точек.

<svg xmlns="http://www.w3.org/2000/svg">
  <circle cx="50" cy="50" r="10" />
  <circle cx="50" cy="50" r="10" />
</svg>

С помощью CSS мы задаём стили только для первого круга, а второй использует стили по умолчанию (при этом fill по умолчанию равен чёрному цвету). Мы используем свойство r, чтобы переопределить значение атрибута SVG r, задав ему значение fill и stroke. Размер SVG по умолчанию составляет 300px в ширину и 150px в высоту.

svg {
  border: 1px solid black;
}

circle:first-of-type {
  r: 30px;
  fill: lightgreen;
  stroke: black;
}

ViewBox и пиксели области просмотра

В этом примере представлены два SVG, каждый из которых содержит два элемента <circle>. Во втором SVG указан атрибут viewBox, демонстрирующий разницу между viewBox SVG и областями просмотра SVG.

<svg xmlns="http://www.w3.org/2000/svg">
  <circle cx="50" cy="50" r="10" />
  <circle cx="50" cy="50" r="10" />
</svg>
<svg viewBox="0 0 200 100" xmlns="http://www.w3.org/2000/svg">
  <circle cx="50" cy="50" r="10" />
  <circle cx="50" cy="50" r="10" />
</svg>

CSS похож на код из предыдущего примера: свойство r: 30px задано, но мы задаём width, чтобы оба изображения были одинаковой ширины — 300px:

svg {
  border: 1px solid black;
  width: 300px;
}

circle:first-of-type {
  r: 30px;
  fill: lightgreen;
  stroke: black;
}

Поскольку атрибут viewBox задаёт ширину SVG в 200 пикселей системы координат SVG, а изображение увеличено до 300px, 30 пикселей координат SVG масштабируются и отображаются как 45 пикселей CSS.

Задание радиуса круга в процентах

В этом примере используется та же разметка, что и в предыдущем. Разница только в значении r: в данном случае мы используем процентное значение.

<svg xmlns="http://www.w3.org/2000/svg">
  <circle cx="50" cy="50" r="10" />
  <circle cx="50" cy="50" r="10" />
</svg>
<svg viewBox="0 0 200 100" xmlns="http://www.w3.org/2000/svg">
  <circle cx="50" cy="50" r="10" />
  <circle cx="50" cy="50" r="10" />
</svg>
svg {
  border: 1px solid black;
  width: 300px;
}

circle:first-of-type {
  r: 30%;
  fill: lightgreen;
  stroke: black;
}

В обоих случаях радиус круга составляет 30% нормализованной диагонали области просмотра SVG. Радиус r равен 0.3×<width>2+<height>22. В первом изображении используются 300 и 150 пикселей CSS, а во втором — 200 и 100 единиц viewBox SVG, но 30% — это пропорциональное значение. Поэтому значение r одинаково: 47.43 единиц viewBox, что соответствует 71.15 пикселям CSS.

Хотя r одинаково, центральные точки различаются, поскольку второй SVG увеличен на 50%, из-за чего его центр смещается вниз и вправо на 50%.

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

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

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

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari для iOS Samsung Internet WebView Android WebView для iOS
r
43
79
69
30
9
43
79
30
9
4.0
43
9

См. также

  • Геометрические свойства: r, cx, cy, rx, ry, x, y, width, height
  • fill
  • stroke
  • paint-order
  • Сокращённое свойство border-radius
  • radial-gradient
  • Тип данных <basic-shape>
  • Атрибут SVG r

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

Spec-Zone.ru

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