Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

stroke-dashoffset CSS property

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit April 2017 browserübergreifend verfügbar.

Die CSS-Eigenschaft stroke-dashoffset definiert einen Versatz für den Startpunkt der Darstellung des zugehörigen Strichmusters eines SVG-Elements. Falls vorhanden, überschreibt sie das Attribut stroke-dashoffset des Elements.

Diese Eigenschaft gilt für jedes SVG-Form- oder Textinhaltselement (eine vollständige Liste finden Sie unter stroke-dashoffset), kann aber als vererbte Eigenschaft auch auf Elemente wie <g> angewendet werden und dennoch die beabsichtigte Wirkung auf die Striche von Nachfolgerelementen haben.

Syntax

css
/* Keyword value */
stroke-dashoffset: none;

/* Length and percentage values */
stroke-dashoffset: 2;
stroke-dashoffset: 2px;
stroke-dashoffset: 2%;

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

Werte

<number>

Eine Anzahl von SVG-Einheiten, deren Größe durch den aktuellen Einheitenraum definiert wird. Der angegebene Wert verschiebt, sofern er nicht 0 ist, den Startpunkt vom Beginn des Strichmusters zu einem anderen Punkt innerhalb dieses Musters. Daher scheinen positive Werte das Strich-Lücken-Muster rückwärts zu verschieben, während negative Werte das Muster vorwärts zu verschieben scheinen.

<length>

Pixeleinheiten werden genauso behandelt wie SVG-Einheiten (siehe <number> oben), und schriftbasierte Längen wie em werden in Bezug auf den SVG-Wert des Elements für die Textgröße berechnet; die Auswirkungen anderer Längeneinheiten können vom Browser abhängen. Der Verschiebungseffekt für jeden Wert entspricht dem von <number>-Werten (siehe oben).

<percentage>

Prozentwerte beziehen sich auf die normalisierte Diagonale des aktuellen SVG-Viewports, die als <width>2+<height>22 berechnet wird, nicht auf die Gesamtlänge des Strichpfads. Negative Werte sind ungültig.

Formale Definition

Anfangswert0
Anwendbar auf<circle>, <ellipse>, <line>, <path>, <polygon>, <polyline>, and <rect> elements in an svg
VererbtJa
Prozentwerterefer to the normalized diagonal measure of the current SVG viewport's applied viewBox, or of the viewport itself if no viewBox is specified
Berechneter Wertan absolute <length> or <percentage>, numbers converted to absolute lengths first
Animationstypby computed value type

Formale Syntax

stroke-dashoffset = 
<length-percentage> |
<number>

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

Beispiele

Strichversatz

Um zu zeigen, wie Striche versetzt werden können, richten wir zunächst fünf identische Pfade ein, die alle über das SVG-Attribut stroke-dasharray ein Strichmuster aus einem 20-Einheiten-Strich gefolgt von einer 3-Einheiten-Lücke erhalten. (Dies hätte auch mit der CSS-Eigenschaft stroke-dasharray erfolgen können.) Den Pfaden werden dann über CSS individuelle Strichversätze zugewiesen.

html
<svg viewBox="0 0 100 50" width="500" height="250">
  <rect x="10" y="5" width="80" height="30" fill="#eeeeee" />
  <g stroke="dodgerblue" stroke-width="2" stroke-dasharray="20,3">
    <path d="M 10,10 h 80" />
    <path d="M 10,15 h 80" />
    <path d="M 10,20 h 80" />
    <path d="M 10,25 h 80" />
    <path d="M 10,30 h 80" />
  </g>
</svg>
css
path:nth-of-type(1) {
  stroke-dashoffset: 0;
}
path:nth-of-type(2) {
  stroke-dashoffset: -5;
}
path:nth-of-type(3) {
  stroke-dashoffset: 5;
}
path:nth-of-type(4) {
  stroke-dashoffset: 5px;
}
path:nth-of-type(5) {
  stroke-dashoffset: 5%;
}

Der Reihe nach:

  1. Der erste der fünf Pfade erhält einen Versatz von null, was dem Standardverhalten entspricht.
  2. Der zweite Pfad erhält einen Versatz von -5, wodurch der Startpunkt des Musters auf fünf Einheiten vor dem Nullpunkt verschoben wird. Der sichtbare Effekt besteht darin, dass das Strichmuster um fünf Einheiten nach vorn verschoben wird; daher sehen wir am Beginn des Pfads die letzten zwei Einheiten eines Strichs und anschließend eine Drei-Einheiten-Lücke.
  3. Der dritte Pfad hat einen Versatz von 5, was bedeutet, dass der Startpunkt der Striche fünf Einheiten innerhalb des Strichmusters liegt. Der sichtbare Effekt besteht darin, das Strichmuster um fünf Einheiten nach hinten zu verschieben; daher sehen wir am Beginn des Pfads die letzten fünfzehn Einheiten eines Strichs, gefolgt von einer Drei-Einheiten-Lücke.
  4. Der vierte Pfad hat einen Versatz von 5px, der dieselbe Wirkung wie ein Wert von 5 hat (siehe vorheriges Beispiel).
  5. Der fünfte und letzte Pfad hat einen Versatz von 5%, der den vorherigen beiden Beispielen sehr ähnlich ist, aber nicht ganz gleich. Prozentwerte werden anhand des Diagonalmaßes des SVG-Viewports berechnet und können daher je nach Größe und Seitenverhältnis dieses Viewports variieren.

Spezifikationen

Spezifikation
CSS Fill and Stroke Module Level 3
# stroke-dashoffset

Browser-Kompatibilität

Siehe auch