r

Die r CSS Eigenschaft definiert den Radius eines Kreises. Sie kann nur mit dem SVG-Element <circle> verwendet werden. Wenn vorhanden, überschreibt sie das Attribut r des Kreises.

Hinweis: Die r Eigenschaft gilt nur für <circle> Elemente, die in einem <svg> verschachtelt sind. Sie gilt nicht für andere SVG-Elemente oder HTML-Elemente oder Pseudo-Elemente.

Syntax

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

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

Werte

Die Werte <length> und <percentage> definieren den Radius des Kreises.

<length>

Absolute oder relative Längen können in jeder Einheit ausgedrückt werden, die vom CSS-Datentyp <length> zugelassen wird. Negative Werte sind ungültig.

<percentage>

Prozentsätze beziehen sich auf die normierte Diagonale des aktuellen SVG-Viewports, die berechnet wird als <width>2+<height>22.

Formale Definition

Anfangswert0
Anwendbar auf<circle> element in <svg>
VererbtNein
Prozentwerterefer to the normalized diagonal of the current SVG viewport
Berechneter Wertder Prozentwert wie angegeben oder die absolute Länge
Animationstypby computed value type

Formale Syntax

r = 
<length-percentage>

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

Beispiele

Definition des Radius eines Kreises

In diesem Beispiel haben wir zwei identische <circle> Elemente in einem SVG, jeweils mit einem Radius von 10 und denselben x- und y-Achsen-Koordinaten für ihre Mittelpunkte.

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

Mit CSS stylen wir nur den ersten Kreis, während der zweite Kreis die Standardstile verwendet (mit der fill Standardeinstellung auf Schwarz). Wir verwenden die r Eigenschaft, um den Wert des SVG-Attributs r zu überschreiben, ihm ein fill und einen stroke zu geben. Die Standardgröße eines SVG beträgt 300px in der Breite und 150px in der Höhe.

css
svg {
  border: 1px solid black;
}

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

ViewBox versus Viewport-Pixel

Dieses Beispiel enthält zwei SVGs, jeweils mit zwei <circle> Elementen. Das zweite SVG beinhaltet ein viewBox Attribut, um den Unterschied zwischen SVG viewBox und SVG Viewports zu verdeutlichen.

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>

Das CSS ist ähnlich wie im vorherigen Beispiel, mit r: 30px gesetzt, aber wir setzen eine width, um sicherzustellen, dass die Bilder beide 300px breit sind:

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

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

Da das viewBox Attribut das SVG mit 200 SVG-Koordinatensystem-Pixeln in der Breite definiert und das Bild auf 300px vergrößert wird, werden die 30 SVG-Koordinatensystem-Pixel zu 45 CSS-Pixeln skaliert.

Definition des Radius eines Kreises mit Prozentsätzen

In diesem Beispiel verwenden wir das gleiche Markup wie im vorherigen Beispiel. Der einzige Unterschied ist der r-Wert; in diesem Fall verwenden wir einen Prozentwert.

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

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

In beiden Fällen beträgt der Kreisradius 30% der normierten Diagonale des SVG-Viewports. Der Radius r entspricht 0.3×<width>2+<height>22. Während das erste Bild 300 und 150 CSS-Pixel verwendet und das zweite 200 und 100 SVG-ViewBox-Einheiten, ist 30% ein proportionaler Wert. Dadurch ist der r-Wert derselbe: 47.43 ViewBox-Einheiten, was in 71.15 CSS-Pixeln resultiert.

Während r gleich ist, unterscheiden sich die Mittelpunkte, da das zweite SVG um 50% vergrößert wird, wodurch sich sein Mittelpunkt um 50% nach unten und rechts verschiebt.

Spezifikationen

Specification
Scalable Vector Graphics (SVG) 2
# R

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch