r

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

rCSS のプロパティで、円の半径を定義します。これは SVG の <circle> 要素でのみ使用されます。存在する場合、その円の r 属性を上書きします。

メモ: r プロパティは、 <svg> の中にある <circle> 要素にのみ適用されます。その他の SVG 要素、 HTML 要素、擬似要素には適用されません。

構文

css
/* 長さとパーセント値 */
r: 3px;
r: 20%;

/* グローバル値 */
r: inherit;
r: initial;
r: revert;
r: revert-layer;
r: unset;

円の半径を定義する <length><percentage> の値です。

<length>

絶対的または相対的な長さで、 CSS の <length> データ型で許可されている任意の単位で表現することができます。負の値は無効です。

<percentage>

現在の SVG ビューポートの、 <width>2+<height>22 で計算される正規化された対角線を参照するパーセント値です。

公式定義

初期値0
適用対象<circle> element in <svg>
継承なし
パーセント値refer to the normalized diagonal of the current SVG viewport
計算値指定されたパーセント値または絶対的な長さ
アニメーションの種類計算値の型による

形式文法

r = 
<length-percentage>

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

円の半径の定義

この例では、 SVG 内に 2 つの同一の <circle> 要素が存在し、それぞれ半径が 10 で、中心点の X 軸座標と Y 軸座標が同じです。

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

CSS を使用して、最初の円のみスタイルを設定し、 2 番目の円には既定のスタイルを使用します(fill の既定値は黒)。 r プロパティを使用して SVG の r 属性の値を上書きし、 fillstroke を指定します。 SVG の既定のサイズは、幅が 300px、高さが 150pxです。

css
svg {
  border: 1px solid black;
}

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

ViewBox とビューポートのピクセル

この例では、 2 つの SVG が含まれており、それぞれに 2 つの <circle> 要素があります。 2 つ目の SVG には viewBox 属性が記載されており、SVG の viewBox と SVG のビューポートの違いを示しています。

html
<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 が設定されていますが、画像がどちらも確実に 300px になるように、 width を設定します。

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

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

viewBox 属性は SVG を SVG 座標系で 200 ピクセルの幅として定義し、画像は 300px まで拡大されるため、SVG 座標で 30 ピクセルである部分は、CSS ピクセルでは 45 ピクセルとしてレンダリングされるように変倍されます。

パーセント値を使用して円の半径を定義

この例では、前回の例と同じマークアップを使用します。唯一の違いは r の値であり、この場合はパーセント値を使用します。

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

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

どちらの場合も、円の半径は SVG ビューポートの正規化された対角線の 30% です。半径 r0.3×<width>2+<height>22 と同等です。最初の画像は 300150 の CSS ピクセルを使用し、2 番目の画像は 200100 の SVG ビューボックス単位を使用していますが、30% は比例した値です。その結果、r の値は同じになります。 47.43 ビューボックス単位で、71.15 CSS ピクセルに解決されます。

r は同じだが、 2 番目の SVG は 50% 拡大され、中心が 50% 下に、そして右に押されているため、中心点が異なっています。

仕様書

Specification
Scalable Vector Graphics (SVG) 2
# R

ブラウザーの互換性

BCD tables only load in the browser

関連情報