CSS stroke-width Eigenschaft
Wie die CSS-Eigenschaft stroke-width genutzt wird, um die Breite des Strichs festzulegen. Lesen Sie über die Eigenschaft und sehen Sie Beispiele zu den Werten.
Die CSS-Eigenschaft stroke-width legt die Dicke des Umrisses (den „Strich") fest, der um eine SVG-Form oder einen Text gezeichnet wird. Der Strich ist die gemalte Linie, die dem Pfad der Form folgt; stroke-width bestimmt, wie dick diese Linie ist.
Diese Seite behandelt die Syntax, die zulässigen Werte (Längen und Prozentwerte), die Interaktion von stroke-width mit SVG-Präsentationsattributen sowie die Fallstricke bei Einheiten und der viewBox-Skalierung.
Wozu stroke-width verwenden
In SVG werden der Umriss einer Form und ihr Inneres getrennt gezeichnet: Die Eigenschaft stroke zeichnet den Umriss, und fill füllt das Innere. Ein Strich ist erst sichtbar, wenn er eine von null verschiedene Breite hat, daher bewirkt stroke-width, dass ein Umriss überhaupt erscheint. Verwenden Sie diese Eigenschaft, um Ränder dicker oder dünner zu machen, um Haarlinien-Raster zu zeichnen oder um fett umrahmte Icons und Texte zu erstellen.
stroke-width vs. das SVG-Attribut
Es gibt zwei Möglichkeiten, die Strichbreite festzulegen: als SVG-Präsentationsattribut im Markup (stroke-width="3") oder als CSS-Eigenschaft. Wenn beide vorhanden sind, gewinnt CSS — eine CSS-Regel (oder ein Inline-style) hat Vorrang vor dem Präsentationsattribut. Das ist der häufigste Grund, warum ein im SVG-Markup gesetzter Wert scheinbar „ignoriert" wird: Ein Stylesheet überschreibt ihn.
<!-- The CSS stroke-width: 1px wins over the attribute stroke-width="5". -->
<circle cx="5" cy="5" r="3" stroke-width="5" style="stroke-width: 1px;" />stroke-width ist ein Präsentationsattribut und kann auf jedes Element angewendet werden, wirkt sich jedoch nur auf die folgenden Elemente aus: <altGlyph>, <circle>, <ellipse>, <line>, <path>, <polygon>, <polyline>, <rect>, <text>, <textPath>, <tref> und <tspan>.
Einheiten wie px oder em sind erforderlich, außer wenn der Wert 0 ist.
| Standardwert | 1 |
|---|---|
| Gilt für | Formen und Textelemente. |
| Vererbbar | Ja. |
| Animierbar | Ja. |
| Version | SVG 1.1 Specification |
| DOM-Syntax | Object.strokeWidth = "0.5"; |
Syntax
stroke-width: length | percentage | initial | inherit;Die Breite ist auf dem Pfad zentriert: Eine Hälfte wird innerhalb der Formkante gezeichnet und die andere Hälfte außerhalb. Ein stroke-width von 4 bei einem Kreis mit Radius 3 fügt demnach 2 Einheiten jenseits des Radius hinzu und überlappt 2 Einheiten nach innen.
Beispiel der stroke-width-Eigenschaft:
CSS stroke-width Code-Beispiel
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>
<h2>Stroke-width property example</h2>
<svg viewBox="0 0 30 10">
<circle cx="5" cy="5" r="3" stroke="#1c87c9" style="stroke-width: 1px;" />
</svg>
</body>
</html>Ergebnis

Beispiel der stroke-width-Eigenschaft mit dem Wert „length":
CSS stroke-width weiteres Code-Beispiel
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>
<h2>Stroke-width property example</h2>
<svg viewBox="0 0 30 10">
<circle cx="5" cy="5" r="3" stroke="#1c87c9" style="stroke-width: 3px;" />
</svg>
</body>
</html>Beispiel der stroke-width-Eigenschaft mit dem Wert „%":
Ein Prozentwert wird relativ zur SVG-Diagonale aufgelöst — genauer gesagt der Diagonale des viewport (sqrt(width² + height²) / sqrt(2)), nicht relativ zur Größe der Form selbst. Das macht prozentuale Breiten praktisch, wenn der Strich mit der Zeichnung skalieren soll.
CSS stroke-width Prozentwert-Beispiel
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>
<h2>Stroke-width property example</h2>
<svg viewBox="0 0 30 10">
<circle cx="5" cy="5" r="3" stroke="#1c87c9" style="stroke-width: 2%;" />
</svg>
</body>
</html>Werte
| Wert | Beschreibung |
|---|---|
| length | Gibt die Breite des Strichs an. |
| percentage | Gibt die Breite des Strichs in % an. |
| initial | Setzt die Eigenschaft auf ihren Standardwert. |
| inherit | Erbt die Eigenschaft vom übergeordneten Element. |
Hinweise und Fallstricke
- Eine Breite von null verbirgt den Strich.
stroke-width: 0zeichnet nichts, auch wenn einestroke-Farbe gesetzt ist. - Einheiten sind für CSS-Werte ungleich null erforderlich. Innerhalb eines
style-Attributs oder Stylesheets sind Angaben wie2pxoder0.5emnötig. Die reine Zahlenform (stroke-width="3") ist nur als SVG-Attribut gültig, wo die Zahl in Benutzerraum-Einheiten interpretiert wird. - Der Strich liegt beidseitig am Pfad. Da die Hälfte der Breite außerhalb der Formkante liegt, kann ein dicker Strich über die
viewBoxhinausragen und abgeschnitten werden. Fügen Sie derviewBoxInnenabstand hinzu, wenn Ihr Umriss abgeschnitten wird. - Er skaliert mit der
viewBox. Ein in Benutzereinheiten angegebenerstroke-widthwächst und schrumpft, wenn das SVG auf seinen Container skaliert wird. Um eine konstante Bildschirmdicke unabhängig von der Skalierung zu erhalten, fügen Sie dem Element das SVG-Attributvector-effect="non-scaling-stroke"hinzu.
Verwandte Eigenschaften
stroke— die Farbe (Füllung) des Umrisses.stroke-linecap— die Form der offenen Pfadenden.stroke-dasharray— verwandelt den Strich in eine gestrichelte Linie.stroke-dashoffset— verschiebt den Startpunkt des Strichmuster.fill— die Farbe des Inneren einer Form.