Fill-rule - Propriété CSS

fill-rule

Résumé des caractéristiques de la propriété fill-rule

Description rapide
Définit comment doit se faire le remplissage d'une forme comportant un trou, ou dont le contour se recoupe lui-même.
Statut
Standard
Utilisable sur
SVG
Valeurs prédéfinies
nonzero | evenodd
Pourcentages
Ne s'appliquent pas.
Valeur initiale
nonzero
Héritée par défaut
Oui.
Type d'animation
Not animable : la propriété fill-rule ne peut pas être animée.
Module W3C
Module CSS - Traits et remplissages
Références (W3C)
 🡇  
 🡅  
Statut du document: WD (document de travail)

Statut du document: CR (document candidat à la recommandation)

Statut du document: REC (recommandation)

Schéma syntaxique de fill-rule.

fill-rule - Syntax DiagramSyntax diagram of the fill-rule CSS property. See stylescss.free.fr for details. nonzero nonzero evenodd evenoddfill-rule:;fill-rule:;
Schéma syntaxique de la propriété fill-rule.
Les liens du schéma donnent accès à plus de détails.

Description de la propriété fill-rule.

fill-rule définit comment doit se faire le remplissage d'une forme, dans le contexte d'une image SVG. Lorsqu'il s'agit d'une forme simple comme un cercle, bien sûr la question ne se pose pas, mais les deux cas de figure ci-dessous sont moins évidents :

SVG

Le contour de la forme
se recoupe lui-même
SVG

La forme comporte un trou

fill-rule n'agit que sur une forme unique : une seule balise path par exemple. La propriété est sans effet sur deux formes qui se recoupent si ces deux formes sont définies par des balises différentes.

Le sens dans lequel le contour est dessiné a également son importance.

Valeurs pour fill-rule.

  • fill-rule: nonzero;

    Pour savoir si un point est inclus dans la forme, on part de ce point avec une valeur de 0, et on s'éloigne ensuite vers l'extérieur de l'image SVG. En effectuant ce trajet, chaque fois qu'un contour est coupé, on ajoute 1 si le contour se dirige de gauche à droite, et on retire 1 si le contour se dirige de droite à gauche. Lorsque le bord de l'image est atteint, si la résultat est 0, le point de départ n'est pas inclus dans la forme. Sinon il est inclus.

    SVG
    fill-rule:nonzero
    fill-rule:nonzero
  • fill-rule: evenodd;

    La logique pour déterminer si un point est inclus dans le forme est légèrement différente : on part de ce point en s'éloignant vers le bord de l'image. Chaque fois que le contour est coupé on ajoute 1, mais le sens de tracé du contour n'est plus pris en compte. Lorsque le bord de l'image est atteint, si le résultat est impair, le point est à l'intérieur de la forme, sinon il est à l'extérieur.

    SVG
    fill-rule:nonzero
    fill-rule:evenodd
  • fill-rule: initial; (nonzero) fill-rule: inherit; fill-rule: revert; fill-rule: revertLayer; fill-rule: unset;

    Ces valeurs sont décrites plus en détail sur leur page respective : initial, inherit, revert, revert-layer, unset.

Animation de la propriété fill-rule.

La propriété fill-rule ne peut pas être animée.

Simulateur avec la propriété fill-rule.

Les deux images ci-dessous comportent chacune une seule forme (définie par la balise path) dont le contour se recoupe. Voyez l'effet de la propriété fill-rule et, sur la première image, l'influence du sens dans lequel le contour est dessiné (flèches).

fill-rule :
SVG
SVG

Prise en charge de fill-rule par les navigateurs.

Colonne 1
Possibilité de définir comment remplir une forme qui se recoupe elle-même ou qui comporte un trou. La propriété fill-rule.
1
Propriété
fill-rule
Estimation de la prise en charge globale.
95%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

UC Browser pour Androïd

Chrome

Edge

Opéra

Samsung Internet

Opéra Mobile

QQ Browser

Baidu Browser

Safari sur IOS

Safari

Firefox

Androïd Brower

Chrome pour Androïd

Firefox pour Androïd

KaiOS Browser

Opéra mini

Historique de la propriété fill-rule.

  • SVG (Scalable Vector Graphics)

    Introduction de la propriété fill-rule.
    WD
    30 Octobre 2001
    Document de travail.
    CR
    30 Avril 2002
    Candidat à la recommandation.
    PR
    09 Juin 2011
    Proposé à la recommandation.
    REC
    16 Août 2011
    Recommandation.
  • SVG (Scalable Vector Graphics)

    Pas de changement concernant la propriété fill-rule.
    WD
    28 Août 2012
    Document de travail.
    CR
    15 Septembre 2016
    Candidat à la recommandation.
    PR
    REC
  • Module CSS - Traits et remplissages - Niveau 3

    Pas de changement concernant la description de la propriété fill-rule.
    WD
    13 Avril 2017
    Document de travail.
    CR
    PR
    REC

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. Après avoir fait partie de la spécification SVG11 et SVG2, fill-rule est maintenant décrit dans ce module, ainsi que les propriétés suivantes.

Propriétés :

fill
Définit l'ensemble des paramètres de remplissage d'une forme (couleur, etc).
fill-break
Définit comment le navigateur gère les ruptures dans cet élément (saut de page par exemple).
fill-color
Définit la couleur des remplissages en SVG.
fill-image
Définit la ou les images de remplissage. Cela peut être aussi des dégradés de couleur.
fill-opacity
Définit l'opcaité (la transparence) du remplissage d'une forme en SVG.
fill-origin
Définit la boîte qui sert de référence pour le positionnement des remplissages (images ou dégradés).
fill-position
Définit la position du remplissage, en accord avec la propriété fill-origin.
fill-repeat
Détermine comment est répétée l'image de remplissage dans une forme SVG.
fill-size
Détermine les dimensions de l'image o du dégradé de remplissage sur une forme SVG.
paint-order
Définit l'ordre de dessin des différentes parties d'une forme (contour, remplissage, marqueurs).
stroke
Définit les paramètres de la bordure d'une forme en SVG.
stroke-align
Définit comment se positionne le trait de bordure par rapport aux limites de la forme, en SVG.
stroke-break
Définit comment sont coupées les bordures dans le cas d'une fragmentation.
stroke-color
Définit la couleur des contours en SVG.
stroke-dash-corner
Définit comment gérer les pointillés dans les angles du contour (SVG).
stroke-dash-justify
Définit l'ajustement des pointillés pour qu'un nombnre entier de segments soit compris dans le tracé (SVG).
stroke-dasharray
Définit les caractéristiques d'un pointillé (en SVG).
stroke-dashoffset
Définit le point de départ des pointillés sur un contour SVG.
stroke-linecap
Définit la forme des embouts de lignes (en SVG).
stroke-linejoin
Définit la forme des raccordements de segments en SVG.
stroke-miterlimit
Limite le dépassement des raccordements de segments avec un angle aigu.
stroke-opacity
Définit l'opacité (la transparence) du contour en SVG.
stroke-width
Définit l'épaisseur des tracés en SVG.