Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.
La propriété backdrop-filter
permet d'obtenir un effet de flou ou de diffusion de la couleur sur la zone derrière l'élément. Cet effet pourra être observé ajustant la transparence de l'élément.
Valeur initiale | none |
---|---|
Applicabilité | tous les éléments ; en SVG, cela s'applique aux éléments conteneurs à l'exception des éléments defs et des éléments graphiques |
Héritée | non |
Média | visuel |
Valeur calculée | comme spécifié |
Animable | oui |
Ordre canonique | l'ordre unique et non-ambigu défini par la grammaire formelle |
Syntaxe
/* Valeur avec un mot-clé */ backdrop-filter: none; /* Une valeur d'URL vers un filtre SVG */ backdrop-filter: url(commonfilters.svg#filter); /* Les notations fonctionnelles pour les filtres */ backdrop-filter: blur(2px); backdrop-filter: brightness(60%); backdrop-filter: contrast(40%); backdrop-filter: drop-shadow(4px 4px 10px blue); backdrop-filter: grayscale(30%); backdrop-filter: hue-rotate(120deg); backdrop-filter: invert(70%); backdrop-filter: opacity(20%); backdrop-filter: sepia(90%); backdrop-filter: saturate(80%); /* On enchaîne plusieurs filtres */ backdrop-filter: url(filters.svg#filter) blur(4px) saturate(150%); /* Valeurs globales */ backdrop-filter: inherit; backdrop-filter: initial; backdrop-filter: unset;
Valeurs
none
- Un mot-clé qui indique qu'aucun filtre n'est appliqué sur l'ombre portée.
<filter-function-list>
- Une liste de fonctions de filtre, séparées par des espaces et qui seront appliquées à l'ombre. Les différentes fonctions qui peuvent être utilisées sont les mêmes que pour la propriété
filter
.
Syntaxe formelle
none | <filter-function-list>où
<filter-function-list> = [ <filter-function> | <url> ]+
où
<filter-function> = <blur()> | <brightness()> | <contrast()> | <drop-shadow()> | <grayscale()> | <hue-rotate()> | <invert()> | <opacity()> | <sepia()> | <saturate()>
où
<blur()> = blur( <length> )
<brightness()> = brightness( [ <number> | <percentage> ] )
<contrast()> = contrast( [ <number> | <percentage> ] )
<drop-shadow()> = drop-shadow( <length>{2,3} <color>? )
<grayscale()> = grayscale( [ <number> | <percentage> ] )
<hue-rotate()> = hue-rotate( <angle> )
<invert()> = invert( [ <number> | <percentage> ] )
<opacity()> = opacity( [ <number> | <percentage> ] )
<sepia()> = sepia( [ <number> | <percentage> ] )
<saturate()> = saturate( [ <number> | <percentage> ] )où
<color> = <rgb()> | <rgba()> | <hsl()> | <hsla()> | <hex-color> | <named-color> | currentcolor | <deprecated-system-color>
où
<rgb()> = rgb( <rgb-component>#{3} )
<rgba()> = rgba( <rgb-component>#{3} , <alpha-value> )
<hsl()> = hsl( <hue>, <percentage>, <percentage> )
<hsla()> = hsla( <hue>, <percentage>, <percentage>, <alpha-value> )
<named-color> = <ident>
<deprecated-system-color> = ActiveBorder | ActiveCaption | AppWorkspace | Background | ButtonFace | ButtonHighlight | ButtonShadow | ButtonText | CaptionText | GrayText | Highlight | HighlightText | InactiveBorder | InactiveCaption | InactiveCaptionText | InfoBackground | InfoText | Menu | MenuText | Scrollbar | ThreeDDarkShadow | ThreeDFace | ThreeDHighlight | ThreeDLightShadow | ThreeDShadow | Window | WindowFrame | WindowTextoù
<rgb-component> = <integer> | <percentage>
<alpha-value> = <number>
<hue> = <number>
Exemples
CSS
.box { background-color: rgba(255, 255, 255, 0.95); border-radius: 5px; font-family: sans-serif; text-align: center; line-height: 1; backdrop-filter: blur(5 px); max-width: 50%; max-height: 50%; backdrop-filter: blur(5 px); backdrop-filter: blur(5 px); background-color: rgba(255, 255, 255, 0.5); } html, body { height: 100%; width: 100%; } body { background-image: url('https://pixabay.com/static/uploads/photo/2014/08/26/20/06/lonely-428380_960_720.jpg'); background-position: center center; background-repeat: no-repeat; background-size: cover; } .container { align-items: center; display: flex; justify-content: center; height: 100%; width: 100%; }
HTML
<div class="container"> <div class="box"> <p>backdrop-filter: blur(5px)</p> </div> </div>
Résultat
Spécifications
Spécification | État | Commentaires |
---|---|---|
Filter Effects Module Level 2 La définition de 'backdrop-filter' dans cette spécification. |
Brouillon de l'éditeur | Définition initiale. |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Support simple | Pas de support[1] | Pas de support[2] | ? | ? | 9.0-webkit |
Fonctionnalité | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Support simple | Pas de support | ? | ? | ? | ? |
[1] Chrome n'implémente pas encore cette fonctionnalité, cf. bug 497522.
[2] Gecko n'implémente pas encore cette fonctionnalité; cf. bug 1178765.