Backdrop-filter - Propriété CSS

backdrop-filter

Résumé des caractéristiques de la propriété backdrop-filter

Description rapide
Applique un filtre graphique sur l'élément situé derrière l'élément ciblé.
Statut
Standard
Utilisable sur
HTML
Valeurs prédéfinies
none
Pourcentages
Ne s'appliquent pas.
Valeur initiale
none
Héritée par défaut
Non.
Computed value : lors d'une animation, la propriété backdrop-filter passe progressivement d'une valeur à une autre.
Module W3C
Module filtres et effets
Statut du document: ED (brouillon des éditeurs)

Schéma de la syntaxe de backdrop-filter.

backdrop-filter - Syntax DiagramSyntax diagram of the backdrop-filter CSS property. See stylescss.free.fr for details. none none filter filter url('url'url('url')backdrop-filter:;backdrop-filter:;
Schéma syntaxique de la propriété backdrop-filter.
Syntaxe détaillée

Description des termes utilisés sur le schéma :

Quel est le rôle de la propriété CSS backdrop-filter ?

La propriété backdrop-filter définit un filtre graphique (flou, ombrage, etc) qui sera appliqué sur l'élément situé derrière l'élément désigné par le sélecteur. Pour que l'effet soit visible, ce dernier doit bien entendu avoir un arrière-plan transparent ou au moins avec une opacité inférieure à 1.

Voici par exemple ce qu'il est possible d'obtenir avec backdrop-filter.

Afin de rendre la lecture du texte plus facile, le fond de l'élément en arrière-plan a été éclairci.
La couleur de l'élément en arrière-plan a été changée (rotation de couleur avec hue-rotate()) derrière ce deuxième bloc.
Le contraste de l'élément en arrière plan a été réduit afin de faciliter la lecture du texte.

Valeurs pour backdrop-filter.

  • backdrop-filter: none;

    Valeur par défaut. Aucun effet graphique n'est appliqué.

  • backdrop-filter: blur(); backdrop-filter: brightness(); backdrop-filter: contrast(); backdrop-filter: drop-shadow(); backdrop-filter: grayscale(); backdrop-filter: hue-rotate(); backdrop-filter: invert(); backdrop-filter: opacity(); backdrop-filter: sepia(); backdrop-filter: saturate();

    Toutes ces fonctions appliquent un filtre graphique (contraste, changement des couleurs, etc.) qui peut être utilisé avec backdrop-filter. Cliquez sur les noms des fonctions pour plus de précision sur leur effet ou leur paramétrage.

    Dans l'exemple ci-dessous, la couleur du texte est proche de celle du dégradé en arrière-plan, rendant le texte illisible. Vous pourrez constater la présence d'une première ligne de texte en la sélectionnant.
    En réduisant la luminosité de l'arrière-plan sur la deuxième ligne, on améliore beaucoup la lisibilité.

    Texte illisible car dans une couleur proche de celle de l'arrière-plan
    Amélioration de la lisibilité avec backdrop-filter:brightness(0.5);
  • backdrop-filter: url();

    Applique les traitements graphiques définis dans le fichier indiqué (en format SVG).

    L'exemple ci-dessous applique un flou défini en SVG à la deuxième ligne de texte afin d'améliorer la lisibilité.
    Cet exemple ne marche pas sur Firefox   (2024).

    Texte à peine lisible à cause d'un arrière-plan trop contrasté
    Amélioration de la lisibilité avec un filtre SVG
    backdrop-filter:url('#blur');
  • backdrop-filter: blur() sepia() opacity();

    Une série de valeurs, séparées par des espaces : application d'une succession de filtres.

    Amélioration de la lisibilité par application d'un flou et d'une rotation des couleurs
  • backdrop-filter: initial; (none) backdrop-filter: inherit; backdrop-filter: revert; backdrop-filter: revertLayer; backdrop-filter: unset;

    Consultez les pages suivantes pour plus de détails : initial, inherit, revert, revert-layer, unset.

Exemple d'animation de backdrop-filter.

La propriété backdrop-filter peut être animée grâce aux fonctions graphiques auxquelles elle fait appel. En effet ces fonctions acceptent toutes une ou plusieurs valeurs numériques en paramètre.

Exemple d'un effet obtenu en animant
la propriété backdrop-filter
et la fonction blur()

 

Accéder à la propriété backdrop-filter par programme.

Modifier la valeur de backdrop-filter en Javascript.

En Javascript, voici comment modifier la valeur de backdrop-filter. On voit que Javascript accepte une syntaxe avec la notation typique de CSS, en kebab-case (un tiret pour séparer les mots), et une autre syntaxe avec la notation en camel-case (une majuscule pour séparer les mots).

Javascript
let el = document.getElementById('id'); el.style['backdrop-filter'] = 'blur()'; // ou let el = document.getElementById('id'); el.style.backdropFilter = 'blur()';

Lire en Javascript la valeur de backdrop-filter.

Pour que le code ci-dessous fonctionne, la propriété doit avoir été affectée directement à l'élément lui-même en HTML, via l'attribut style, et non pas en passant par un sélecteur CSS.

Javascript
let el = document.getElementById('id'); let value = el.style['backdrop-filter']; // ou let el = document.getElementById('id'); let value = el.style.backdropFilter;

Lire la valeur calculée de backdrop-filter en Javascript.

La valeur calculée est toujours définie. Elle résulte de la cascade d'héritage, et si aucune valeur n'est définie pour cette propriété, la valeur calculée sera la valeur initiale de la propriété (none pour backdrop-filter).

Javascript
let el = document.getElementById('id'); let value = window.getComputedStyle(el).getPropertyValue('backdrop-filter');

Modifier la valeur de la propriété backdrop-filter avec JQuery.

Comme en Javascript, le nom de la propriété peut être écrit en kebab-case ou en camel-case.

JQuery

$('#id').css('backdrop-filter', 'blur()');
// ou
$('#id').css('backdropFilter', 'blur()');

Lire la valeur calculée de la propriété backdrop-filter avec JQuery.

JQuery
let value = $('#id').css('backdrop-filter');

Autres exemples de code.

D'autres exemples de code Javascript et JQuery sont donnés sur la page Javascript et CSS.

Testez vous-même.

Les boutons ci-dessous appliquent la valeur saisie à la propriété backdrop-filter et affichent ensuite soit la valeur telle qu'elle a été appliquée, soit la valeur calculée. Cette deuxième option permet de voir comment est mémorisée (sérialisée) la valeur de backdrop-filter. On constate en particulier que les pourcentages sont bien mémorisés en tant que pourcentages (voir le chapitre sur l'héritage). Toutes les autres unités sont converties en pixels.

Exemple interactif avec la propriété backdrop-filter.

backdrop-filter :
Ce texte risque d'être difficile à lire à cause du fond très chargé de l'élément parent.
La propriété backdrop-filter permet d'arranger les choses.

Prise en charge de backdrop-filter par les navigateurs.

La propriété backdrop-filter est maintenant reconnue par la plupart des navigateurs récents.

Colonne 1
Prise en charge de la propriété backdrop-filter pour appliquer un filtre en arrière de l'élément.
1
Propriété
backdrop-filter
Estimation de la prise en charge globale.
96%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

KaiOS Browser

Opéra Mobile

Chrome

Edge

Opéra

Safari

Safari sur IOS

Androïd Brower

Chrome pour Androïd

Firefox pour Androïd

Samsung Internet

Firefox

Baidu Browser

QQ Browser

UC Browser pour Androïd

Opéra mini

Histoire de la propriété backdrop-filter.

Voir aussi, au sujet des filtres graphiques.

Les filtres et effets graphiques divers sont décrits dans la spécification nommée "Module filtres et effets" en français, ou "Module filtres et effets" en anglais. Tous les textes de standardisation sont publiés par le W3C. Voici les termes relatifs aux filtres graphiques :

Propriétés :

Backdrop-filter
Applique un filtre graphique sur l'élément situé derrière l'élément ciblé.
color-interpolation
Définit l'espace de couleurs à utiliser pour calculer les dégradés, les animations et les combinaisons avec la couche alpha.
color-interpolation-filters
Définit dans quel espace de couleurs sont calculés les effets de filtrage. Par défaut cet espace est le linearRGB
filter
Applique un filtre graphique (flou, contraste, luminosité...) à un élément.
flood-color
Définit la couleur des remplissages et des ombrages dans le contexte de filtres SVG.
flood-opacity
Définit l'opacité des remplissages et des ombrages dans le contexte de filtres SVG.
lighting-color
Définit la couleur de l'éclairage dans le contexte d'un filtre SVG.

Fonctions :

blur()
blur() est un filtre graphique utilisable avec la propriété filter. La fonction applique un effet de flou sur l'élément.
brightness()
Ajuste la luminosité d'une image ou d'un élément quelconque. C'est un filtre graphique qui s'utilise avec la propriété filter.
contrast()
Ajuste le contraste d'une image ou d'un élément quelconque. C'est un filtre graphique qui s'utilise avec la propriété filter.
drop-shadow()
Définit l'ombre d'un élément : dimensions, flou, couleur, etc. C'est un filtre graphique qui s'utiilise avec la propriété filter.
grayscale()
Convertit un élément en nuances de gris (filtre graphique) de façon plus moins complète. A l'extrême les couleurs peuvent être complètement supprimées.
hue-rotate()
Change les couleurs d'une image en effectuant une rotation des teintes (filtre graphique).
invert()
Inverse les couleurs d'une image ou d'un élément quelconque. C'est un filtre graphique qui s'utilise avec le propriété filter.
opacity()
Détermine le degré de transparence d'un élément. C'est un filtre graphique qui s'utilise avec la propriété filter.
saturate()
Définit la saturation des couleurs d'une image ou d'un élément quelconque. C'est un filtre graphique qui s'utilise avec la propriété filter.
sepia()
Applique un effet sépia à une image ou un élément quelconque. C'est un (filtre graphique qui s'utilise avec la propriété filter.