Contour en pointillés - Propriétés CSS
Résumé des caractéristiques de la propriété stroke-dasharray
none
none
stroke-dasharray
passe progressivement d'une valeur à une autre.Schémas syntaxiques.
stroke-dasharray
length
est une valeur numérique positive, suivie d'une des unités de dimension.%
est un pourcentage résultant en une dimension.- Un nombre quelconque de valeurs peut être spécifié, en les séparant par un espace.
stroke-dashoffset
length
est une valeur numérique, positive ou nulle, suivie d'une des unités de dimension.
stroke-dash-corner
length
est une valeur numérique, positive ou nulle, suivie d'une des unités de dimension.
stroke-dash-justify
Description des propriétés relatives aux contours en pointillés.
Les propriétés stroke-dash-corner
et stroke-dash-justify
seront prochainement décrites plus en détail. Pour le moment
aucun navigateur ne les reconnaît (2024).
Propriété stroke-dasharray
.
La propriété stroke-dasharray
définit les paramètre d'un pointillé : longueur des segments et longueur des espaces.
stroke-dasharray
s'applique à des tracés en SVG, que ce soit des tracés rectilignes ou des courbes.
Comme son nom l'indique, la propriété attend un série de valeurs.
La 1ère valeur définit la longueur du premier segment.
La 2ème valeur définit la longueur du premier espace.
Et ainsi de suite. Lorsque la série de valeurs est explorée, on recommence au début.
Segments et espaces de 10 pixels
stroke-dasharray:10px;
Segments de 20 pixels et espaces de 5 pixels
stroke-dasharray:20px 5px;
Pour plus de détails sur la propriété stroke-dasharray
, voyez la page stroke-dasharray
.
Propriété stroke-dashoffset
.
Cette propriété définit le décalage des pointillés par rapport au point de départ du tracé. Cette possibilité est intéressante dans de nombreux cas de figure, en particulier pour rendre les pointillés plus esthétiques dans les angles du contour.
Sur les exemple ci-dessous, le point de départ du tracé est matérialisé par un point rouge. Les pointillés sont une alternance d'espaces et de segments, chacun d'eux ayant une longueur de 20 pixels. Sans décalage, les pointillés ne sont pas symétriques par rapport aux angles du contour. Avec un décalage de 10 pixels on retrouve une symétrie bien plus esthétique.
Pointillé non décalé
Pointillé décalé de 10 pixels
Reportez vous à la page stroke-dashoffset
pour plus d'informations sur cette propriété.
Propriété stroke-dash-corner
.
Il n'est pas toujours possible d'obtenir des pointillés symétriques à tous les angles d'un contours simplement en ajustant l'offset, en particulier lorsque la figure
est composée de segments de longueurs inégales.
La propriété stroke-dash-corner
, encore peu reconnue, doit résoudre ce problème : elle définit la longueur d'un segment plein (sans pointillé) qui
sera dessiné à chacun des angles de la forme.
L'exemple ci-dessous est une simulation car la propriété stroke-dash-corner
n'est pas encore traitée par les navigateurs.
Impossibilité d'avoir une symétrie à tous les angles
La propriété
stroke-dash-corner
résout le problème
Voyez la page stroke-dash-corner
pour davantage d'explications.
Propriété stroke-dash-justify
.
La propriété stroke-dash-justify
définit comment doivent être ajustées les longueurs des pointillés pour qu'un nombre entier de pointillés puissent entrer
dans la longueur du contour.
L'exemple ci-dessous est une simulation car la propriété stroke-dash-justify
n'est pas encore traitée par les navigateurs.
La longueur du contour est d'environ 251 pixels, et celle des pointillés de 23 + 23 pixels, soit 46 pixels.
251 / 46 = 5,4, ce qui n'est pas un nombre entier. On constate (à gauche) que l'un des segments parait plus long, car le segment de départ
et celui de fin se sont rejoints.
L'un des segments parait plus long, car deux segments ont fusionnés.
La propriété
stroke-dash-justify
ajuste la longueur des segments ou celle des espaces pour éviter ce problème.
Reportez-vous à la page stroke-dash-justify
pour plus d'explications sur la propriété stroke-dash-justify
.
Valeurs pour stroke-dasharray
.
- stroke-dasharray: none;
La valeur
none
définit un tracé continu, sans pointillés. - stroke-dasharray: 10px 20px;
La propriété accepte une série de valeurs séparées par des espaces. Chacun des valeurs doit être suivie d'une des unités de dimension (l'abSense d'unité ne semble pas poser de problème, la valeur est alors considérée comme étant en pixels).
La première valeur est la longueur du premier tiret, la valeur suivante, la longueur du premier espacement, etc. Lorsque toutes ces valeurs ont été explorées, le cycle recommence à la première valeur.Les pourcentages sont autorisés, mais leur calcul ne semble pas clairement défini.
La valeur0
est équivalente ànone
.stroke-dasharray:10px
Une seule valeur spécifié : elle dimensionne aussi bien les tirets que les espacements entre les tiretsstroke-dasharray:30px 10px
Deux valeurs spécifiés : la première est la longueur des tirets, la deuxième la longueur des espacesstroke-dasharray:10px 20px 50px
Lorsque le nombre de valeurs indiquées est impair, l'ensemble des valeurs est dupliqué ce qui donne forcément un nombre pair de valeurs, mais le résultat n'est pas forcément celui escompté : dans notre exemple, le pointillé parait un peu désordonné.Ci-dessous, avec un nombre pair de valeurs, le résultat est un trait d'axe.
stroke-dasharray:10px 10px 50px 10px
Valeurs pour stroke-dashoffset
.
- stroke-dashoffset: 5px;
La valeur est positive ou négative, suivie d'une des unités de dimension. Les pointillés seront décalés de cette valeur. Le sens du décalage n'est pas intuitif (voir les exemples).
Sur les exemples ci-dessous, le point rouge marque le début du tracé.
Valeurs pour stroke-dash-corner
.
- stroke-dash-corner: 5px;
La valeur est positive, et suivie d'une des unités de dimension.
Valeurs pour stroke-dash-justify
.
- stroke-dash-justify: none;
- stroke-dash-justify: stretch;
- stroke-dash-justify: compress;
- stroke-dash-justify: dashes;
- stroke-dash-justify: gaps;
- stroke-dasharray: initial; (
none
) stroke-dasharray: inherit; stroke-dasharray: revert; stroke-dasharray: revertLayer; stroke-dasharray: unset;stroke-dashoffset: initial; (0
) stroke-dashoffset: inherit; stroke-dashoffset: revert; stroke-dashoffset: revertLayer; stroke-dashoffset: unset;stroke-dash-corner: initial; (none
) stroke-dash-corner: inherit; stroke-dash-corner: revert; stroke-dash-corner: revertLayer; stroke-dash-corner: unset;stroke-dash-justify: initial; (none
) stroke-dash-justify: inherit; stroke-dash-justify: revert; stroke-dash-justify: revertLayer; stroke-dash-justify: unset;Consultez les pages suivantes pour plus de détails :
initial
,inherit
,revert
,revert-layer
,unset
.
Animation.
L'animation des propriétés relatives aux pointillés peut donner des effets visuels intéressants.
Animation de la propriété
stroke-dasharray
Animation de la propriété
stroke-dashoffset
Exemple interactif avec la propriété stroke-dasharray
.
Compatibilité des navigateurs avec stroke-dasharray
.
stroke-dasharray
qui définit les distances des tirets et des espaces entre les tirets, pour un tracé en pointillé en SVG.stroke-dasharray
Navigateurs sur ordinateurs :
Navigateurs sur mobiles :
Navigateurs obsolètes ou marginaux :

Internet Explorer

UC Browser pour Androïd

Edge

Opéra

Samsung Internet

Opéra Mobile

QQ Browser

Baidu Browser

Safari sur IOS

Safari

Firefox

Chrome

Androïd Brower

Chrome pour Androïd

Firefox pour Androïd

KaiOS Browser

Opéra mini
Histoire de la propriété stroke-dasharray
.
-
SVG (Scalable Vector Graphics)
Introduction des propriétésdash-dasharray
etstroke-dashoffset
.30 Octobre 2001Document de travail.30 Avril 2002Candidat à la recommandation.09 Juin 2011Proposé à la recommandation.16 Août 2011Recommandation. -
SVG (Scalable Vector Graphics)
Pas de changement concernant les propriétésstroke-dasharray
etstroke-dashoffset
.28 Août 2012Document de travail.15 Septembre 2016Candidat à la recommandation. -
Module CSS - Traits et remplissages - Niveau 3
Pas de changement concernant les propriétésstroke-dasharray
etstroke-dashoffset
.
Introduction de deux nouvelles propriétés :stroke-dash-corner
etstroke-dash-justify
.13 Avril 2017Document de travail.
Voir aussi, concernant SVG.
Tout ce qui concerne les remplissages et contours en SVG est maintenant décrit dans le module de spécification CSS Fill and Stroke Module.
Les propriétés stroke-dash...
sont maintenant décrites dans ce module, avec les propriétés suivantes.
Propriétés :
fill-origin
.