W3docs

Propriété CSS stroke

Comment utiliser la propriété CSS stroke pour peindre le contour d'un élément SVG. Découvrez les valeurs disponibles avec des exemples.

La propriété CSS stroke peint le contour (la ligne) d'une forme SVG ou d'un morceau de texte. Là où fill colore l'intérieur d'une forme, stroke colore son bord — ensemble, ils contrôlent la façon dont chaque chemin, cercle, rectangle et élément texte SVG est dessiné.

Cette page explique ce que fait stroke, les valeurs qu'il accepte, comment il interagit avec les propriétés de contour associées (largeur, motif de tirets, extrémités de ligne), ainsi que les erreurs courantes à éviter.

Quand l'utiliser ?

stroke n'affecte que le contenu SVG — il n'a aucun effet sur les éléments HTML ordinaires comme <div> ou <p>. Utilisez-le lorsque vous :

  • Dessinez des icônes, des graphiques ou des diagrammes en ligne avec <svg>.
  • Animez une ligne qui « se dessine elle-même » (combinez stroke avec stroke-dasharray et stroke-dashoffset).
  • Tracez le contour d'un texte SVG sans le remplir.

Vous pouvez trouver les couleurs web nommées dans la section couleurs HTML.

Propriété CSS vs attribut de présentation

stroke est particulier : vous pouvez le définir soit comme propriété CSS, soit comme attribut de présentation SVG écrit directement sur l'élément. Ces deux lignes produisent le même résultat :

<!-- presentation attribute -->
<path stroke="#1c87c9" d="M5 20 l215 0" />

<!-- CSS, via a style block or stylesheet -->
<path style="stroke: #1c87c9;" d="M5 20 l215 0" />

Lorsque les deux sont présents, CSS l'emporte : un style en ligne (ou toute règle de feuille de style) remplace l'attribut de présentation. Cela vous permet de définir une couleur par défaut dans le balisage et de la remplacer depuis CSS — par exemple, au survol.

Info

La propriété stroke peut être utilisée à la fois comme propriété CSS et comme attribut de présentation. Elle peut être appliquée à n'importe quel élément, mais n'a d'effet que sur les éléments suivants : <altGlyph>, <circle>, <ellipse>, <line>, <path>, <polygon>, <polyline>, <rect>, <text>, <textPath>, <tref> et <tspan>.

Valeur initialenone
S'applique àFormes et éléments de contenu textuel.
HéritéeOui.
AnimableNon.
VersionSVG 1.1 Specification
Syntaxe DOMObject.stroke = "#1c87c9";

Syntaxe

Syntaxe CSS stroke

stroke: color | url | none | context-fill | context-stroke | initial | inherit;

Exemple de la propriété stroke :

Exemple de code CSS stroke

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <h2>Stroke property example</h2>
    <svg height="100" width="500">
      <g fill="none">
        <path stroke="#8ebf42" d="M5 20 l215 0" />
        <path stroke="#1c87c9" d="M5 40 l215 0" />
        <path stroke="#666666" d="M5 60 l215 0" />
      </g>
    </svg>
  </body>
</html>

Résultat

exemple

Exemple avec des formes et CSS

Vous n'avez pas à écrire stroke comme attribut — ici, il est défini dans un bloc <style> et appliqué à plusieurs formes à la fois. Notez fill: none pour n'afficher que le contour :

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .outline {
        fill: none;
        stroke: #1c87c9;
        stroke-width: 4px;
      }
      circle.outline {
        stroke: #8ebf42;
      }
    </style>
  </head>
  <body>
    <h2>Stroke from a CSS rule</h2>
    <svg height="120" width="300">
      <rect class="outline" x="10" y="10" width="100" height="100" />
      <circle class="outline" cx="220" cy="60" r="50" />
    </svg>
  </body>
</html>

Valeurs

ValeurDescription
noneAucune peinture n'est appliquée.
colorDéfinit une couleur unie. Les noms de couleurs, les codes hexadécimaux, rgb(), rgba(), hsl(), hsla() peuvent être utilisés.
urlUne référence URL vers un élément de serveur de peinture définissant un serveur de peinture.
context-fillUtilise la valeur de fill provenant d'un élément de contexte.
context-strokeUtilise la valeur de stroke provenant d'un élément de contexte.
initialApplique la valeur par défaut de la propriété.
inheritHérite la propriété de son élément parent.

La valeur initiale est none, ce qui signifie qu'une forme sans stroke est dessinée sans contour du tout — même si stroke-width est défini.

Propriétés stroke associées

stroke ne définit que la couleur du contour. Pour contrôler l'apparence de ce contour, combinez-le avec :

Erreurs courantes

  • Rien n'apparaît. Si stroke-width est à 0 (valeur par défaut), le contour est invisible quelle que soit la couleur choisie. Pensez toujours à définir une largeur.
  • La forme est pleine. Si vous souhaitez uniquement le contour, définissez fill: none — sinon l'intérieur est peint en noir par défaut.
  • Cela ne fonctionne pas sur un <div>. stroke n'a d'effet que sur les graphiques SVG et les éléments texte : <altGlyph>, <circle>, <ellipse>, <line>, <path>, <polygon>, <polyline>, <rect>, <text>, <textPath>, <tref> et <tspan>.

Pratique

Pratique
Quel est le rôle de la propriété CSS 'stroke' et comment est-elle utilisée ?
Quel est le rôle de la propriété CSS 'stroke' et comment est-elle utilisée ?
Was this page helpful?