fill-opacity
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis avril 2017.
La propriété CSS fill-opacity définit l'opacité de l'opération de peinture (couleur, dégradé, motif, etc.) appliquée aux formes SVG ou aux éléments de contenu textuel SVG pour remplir l'élément. Cette propriété définit uniquement l'opacité du fill de l'élément ; elle n'affecte pas le contour. Si elle est présente, elle remplace l'attribut SVG fill-opacity de l'élément.
Note :
La propriété fill-opacity ne s'applique qu'aux éléments <circle>, <ellipse>, <path>, <polygon>, <polyline>, <rect>, <text>, <textPath> et <tspan> imbriqués dans un <svg>. Elle ne s'applique pas aux autres éléments SVG, HTML ou pseudo-éléments.
Syntaxe
/* Valeurs numériques et en pourcentage */
fill-opacity: 0.2;
fill-opacity: 20%;
/* Valeurs globales */
fill-opacity: inherit;
fill-opacity: initial;
fill-opacity: revert;
fill-opacity: revert-layer;
fill-opacity: unset;
Valeurs
Les valeurs de type <number> et <percentage> indiquent l'opacité du fill de l'élément.
<number>-
Une valeur numérique comprise entre
0et1, inclus. <percentage>-
Une valeur en pourcentage comprise entre
0%et100%, inclus.
Avec 0 ou 0%, l'élément est entièrement transparent. Avec 1 ou 100%, l'élément est entièrement opaque. Avec des valeurs intermédiaires, l'élément est semi-transparent, le contenu situé derrière l'élément étant visible.
Définition formelle
| Valeur initiale | 1 |
|---|---|
| Applicabilité | SVG shapes and text content elements |
| Héritée | oui |
| Pourcentages | map to the range [0,1] |
| Valeur calculée | La même que la valeur spécifiée après avoir écrêté <number> dans l'intervalle [0.0, 1.0]. |
| Type d'animation | by computed value type |
Syntaxe formelle
fill-opacity =
<'opacity'>
<opacity> =
<opacity-value>
<opacity-value> =
<number> |
<percentage>
Exemples
>Définir l'opacité de remplissage des éléments SVG
Cet exemple illustre le cas d'utilisation de base de fill-opacity, et comment la propriété CSS fill-opacity prend le pas sur l'attribut fill-opacity et n'a aucun effet sur un éventuel stroke appliqué à une forme.
HTML
Nous incluons plusieurs éléments graphiques SVG différents et définissons l'attribut fill-opacity de chacun à 1 (sauf line), ce qui signifie que le remplissage de chaque élément est opaque. L'attribut SVG fill-opacity ne s'applique pas à <line>.
<svg viewBox="0 0 100 150" xmlns="http://www.w3.org/2000/svg">
<rect x="10" y="10" width="30" height="30" fill-opacity="1" />
<rect x="60" y="10" rx="10" ry="10" width="30" height="30" fill-opacity="1" />
<circle cx="25" cy="75" r="20" fill-opacity="1" />
<ellipse cx="75" cy="75" rx="20" ry="10" fill-opacity="1" />
<line x1="50" x2="90" y1="40" y2="60" stroke="black" stroke-width="5" />
<polyline
points="60 90 65 100 70 95 75 110 80 105 85 120 90 115 95 130 100 125"
fill-opacity="1" />
<path d="M20,130 Q40,105 50,130 T90,130" fill-opacity="1" />
</svg>
CSS
Avec CSS, nous utilisons la propriété fill-opacity pour remplacer la valeur de l'attribut SVG fill-opacity, en donnant à chaque élément SVG une valeur différente.
Nous ajoutons un stroke au cercle et à l'ellipse, pour montrer que l'opacité du contour n'est pas affectée par la propriété fill-opacity.
D'autres styles SVG sont appliqués, notamment une image d'arrière-plan pour permettre de mieux voir l'opacité de chaque élément. Ceux-ci ne sont pas affichés ici pour plus de concision.
svg > * {
fill: black;
}
rect:last-of-type {
fill-opacity: 0.1;
}
circle {
fill-opacity: 0.6;
}
ellipse {
fill-opacity: 40%;
}
line {
fill-opacity: 10%;
}
polyline {
fill-opacity: 50%;
}
path {
fill-opacity: 0.5;
}
circle,
ellipse {
stroke: black;
stroke-width: 3px;
}
Résultat
Seuls deux éléments sont entièrement opaques : le premier rectangle et la ligne. Le premier rectangle n'est ciblé par aucun sélecteur, donc aucun CSS n'est appliqué et le fill est totalement opaque. La line est ciblée, avec fill-opacity: 10%. Cependant, la ligne n'a pas d'opération de peinture de remplissage — seul le stroke est visible — donc la déclaration n'a aucun effet.
Spécifications
| Specification |
|---|
| CSS Fill and Stroke Module Level 3> # fill-opacity> |
Compatibilité des navigateurs
Voir aussi
- L'attribut SVG
fill - Propriétés de présentation :
fill-opacity,clip-rule,color-interpolation-filters,fill,fill-rule,marker-end,marker-mid,marker-start,shape-rendering,stop-color,stop-opacity,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,text-anchoretvector-effect - La propriété
opacity - La propriété
background-color - Le type de donnée
<color> - Le type de donnée
<basic-shape>