Spec-Zone.ru › CSS

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

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

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

Свойство rx CSS задаёт радиус по оси X, то есть горизонтальный радиус SVG-элемента <ellipse>, а также горизонтальную кривизну углов прямоугольника SVG-элемента <rect>. Если это свойство задано, оно переопределяет атрибут rx фигуры.

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

Синтаксис

/* Initial value */
rx: auto;

/* Length and percentage values */
rx: 20px;
rx: 20%;

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

Значения

Значение типа <length>, <percentage> или ключевое слово auto задаёт горизонтальный радиус эллипсов и горизонтальный радиус скругления границ прямоугольников.

<length>
Абсолютные или относительные длины можно задавать в любых единицах, допустимых для типа данных CSS <length>. Отрицательные значения недопустимы.
<percentage>
Проценты отсчитываются от ширины текущей области просмотра SVG. Используемое значение для <rect> не превышает 50% ширины прямоугольника.
auto
Если задано значение auto или оно используется по умолчанию, значение rx равно абсолютному значению длины, используемому для ry. Если вычисленные значения rx и ry равны auto, используемое значение — 0.

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

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

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

rx = 
  <length-percentage> |
  auto

<length-percentage> = 
  <length> |
  <percentage>

Примеры

Создание скруглённых углов

В этом примере показано, как создавать прямоугольники со скруглёнными углами, применяя свойство rx к SVG-элементам <rect>.

HTML

Мы добавили SVG-изображение с четырьмя элементами <rect>; все прямоугольники одинаковы, за исключением значения атрибута x, которое задаёт их положение по оси X.

<svg xmlns="http://www.w3.org/2000/svg">
  <rect width="50" height="120" y="5" x="5" />
  <rect width="50" height="120" y="5" x="60" />
  <rect width="50" height="120" y="5" x="115" />
  <rect width="50" height="120" y="5" x="170" />
  <rect width="50" height="120" y="5" x="225" />
</svg>

CSS

С помощью CSS мы задаём значение rx для четырёх прямоугольников:

svg {
  border: 1px solid;
}

rect:nth-of-type(2) {
  rx: 10px;
  fill: red;
}

rect:nth-of-type(3) {
  rx: 2em;
  fill: blue;
}

rect:nth-of-type(4) {
  rx: 5%;
  fill: orange;
}

rect:nth-of-type(5) {
  rx: 80%;
  fill: green;
}

Результат

Для первого прямоугольника по умолчанию используется auto; поскольку все значения ry в этом примере также по умолчанию равны auto, используемое значение rx равно 0. У красного и синего прямоугольников углы скруглены соответственно на 10px и 2em. Поскольку область просмотра SVG по умолчанию имеет размеры 300 × 150 пикселей, значение 5% оранжевого прямоугольника задаёт радиус 15px. Для зелёного прямоугольника задано rx: 80%. Однако, поскольку значение rx не может превышать 50% ширины прямоугольника, результат такой же, как если бы было задано rx: 50%; ry: 50%.

Задание горизонтального радиуса эллипса

В этом простом примере <ellipse> показано, как свойство CSS rx имеет приоритет над атрибутом SVG rx при задании горизонтального радиуса фигуры.

HTML

В SVG мы добавили два одинаковых элемента <ellipse>; для каждого из них атрибут rx имеет значение 20.

<svg xmlns="http://www.w3.org/2000/svg">
  <ellipse cx="80" cy="50" rx="20" ry="40" />
  <ellipse cx="80" cy="50" rx="20" ry="40" />
</svg>

CSS

Мы применяем стили только к первому эллипсу, а его копия использует стандартные стили пользовательского агента (для fill по умолчанию используется чёрный цвет). Геометрическое свойство rx переопределяет значение атрибута SVG rx. Мы также задаём свойства fill и stroke, чтобы отличить стилизованную фигуру от её копии.

svg {
  border: 1px solid;
}

ellipse:first-of-type {
  rx: 80px;
  fill: magenta;
  stroke: rebeccapurple;
}

Результат

Горизонтальный радиус стилизованного эллипса равен 80px, как задано значением свойства CSS rx. Горизонтальный радиус эллипса без стилей равен 20px; он задан атрибутом rx.

Процентные значения горизонтального радиуса эллипса

В этом примере показано использование процентных значений для rx.

HTML

Используется та же разметка, что и в предыдущем примере.

<svg xmlns="http://www.w3.org/2000/svg">
  <ellipse cx="80" cy="50" rx="20" ry="40" />
  <ellipse cx="80" cy="50" rx="20" ry="40" />
</svg>

CSS

CSS похож на код из предыдущего примера; единственное отличие — значение свойства rx. В этом случае используется процентное значение.

svg {
  border: 1px solid;
}

ellipse:first-of-type {
  rx: 30%;
  fill: magenta;
  stroke: rebeccapurple;
}

Результат

При использовании процентных значений для rx они отсчитываются от ширины области просмотра SVG. Здесь горизонтальный радиус стилизованного эллипса составляет 30% ширины текущей области просмотра SVG. Поскольку ширина по умолчанию равна 300px, значение rx составляет 90px.

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

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

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

Настольные Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android WebView на iOS
rx
43
79
69
30
17.4До Safari 17.4 значение распознавалось, но не действовало и распознавалось только как атрибут, применённый к элементу SVG. См. ошибку 266090.
43
79
30
17.4До Safari на iOS 17.4 значение распознавалось, но не действовало и распознавалось только как атрибут, применённый к элементу SVG. См. ошибку 266090.
4.0
43
17.4До WebView на iOS 17.4 значение распознавалось, но не действовало и распознавалось только как атрибут, применённый к элементу SVG. См. ошибку 266090.
auto
53
79
69
40
17.4
53
79
41
17.4
6.0
53
17.4

См. также

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

© 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/rx

Spec-Zone.ru

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