Cross-fade() - Fonction CSS

cross-fade()

Résumé des caractéristiques de la fonction cross-fade()

Description rapide
Réalise le mélange de plusieurs images.
Statut
Problèmes de compatibilité
Module W3C
Module CSS - Images
Références (W3C)
Statut du document: WD (document de travail)

Schéma syntaxique de cross-fade().

cross-fade() - Syntax DiagramSyntax diagram of the cross-fade() CSS function. image image gradient gradient color color {2} {2} , , % %cross-fade()cross-fade()
Syntaxe simplifiée de la fonction cross-fade()
Assez bien prise en charge par les navigateurs
cross-fade() - Syntax DiagramSyntax diagram of the cross-fade() CSS function. % % image image gradient gradient color color , {1,n} , {1,n}cross-fade()cross-fade()

Syntaxe complète de la fonction cross-fade()
Encore peu traitée par les navigateurs

Les liens sur les schémas donnent accès à plus de détails. Les termes utilisés sont décrits ci-dessous :

Description de la fonction cross-fade().

La fonction cross-fade() réalise la superposition et le mélange de plusieurs images, tout en gérant la transparence partielle de chacune des images. L'image de dessus ne cache donc pas les images situées en dessous.

La fonction cross-fade() présente des problèmes de compatibilité avec de nombreux navigateurs. De plus, une syntaxe ancienne, qui n'est plus standardisée, est pourtant encore utilisée. N'hésitez pas à utiliser les préfixes spécifiques à chaque navigateur : -moz-, -webkit-, etc.

La valeur cross-fade() peut être utilisée avec les propriétés suivantes :

  • background-image : Définit l'image ou dégradé d'arrière-plan (plusieurs images ou dégradés peuvent coexister).

Syntaxes de la fonction cross-fade().

  • background: cross-fade(url('img/fichier1.png'), url('img/fichier2.png'), 50%); img1 img2 p

    Cette première syntaxe, non standardisée, de cross-fade() permet de mélanger deux images seulement, en indiquant un seul pourcentage, qui sera appliqué à la première image, la deuxième image recevant le pourcentage complémentaire pour obtenir 100% au total.

    La désignation des images peut se faire de multiples façons :

  • background: cross-fade( url('chemin/fichier1.png') 30%, url('chemin/fichier2.png') 50%, url('chemin/fichier3.png') 20% );

    Cette syntaxe standardisée permet de mélanger un nombre quelconque d'images, en indiquant un pourcentage pour chacune d'elles.
    Remarque : la syntaxe accepte que les pourcentages soient placés avant ou après la spécification des images.

    Si la somme des pourcentages dépasse 100%, le navigateur applique un coefficient à chacun des pourcentages pour obtenir 100% au total.

    Par contre, si la somme des pourcentages est inférieure à 100%, le navigateur ne corrige pas les valeurs indiquées. L'image résultat peut donc avoir une certaine transparence, qui correspond au pourcentage manquant.

    Comme avec la première syntaxe, la liste peut comporter des images (spécifiées de multiples façons), des dégradés, ou de simples couleurs.

Exemples d'utilisation de la fonction cross-fade().

Exemple (syntaxe simplifiée).

Dans une première version, la fonction cross-fade() ne permettait de mélanger que deux images. Certains navigateurs traitent encore cette syntaxe simplifiée en préfixant avec -webkit-.

-webkit-cross-fade( url(img1), url(img2), p%)

Mélange de deux images (syntaxe simplifiée)
 
Mélange d'une image et d'une dégradé de couleurs
(syntaxe simplifiée)

Exemple avec la syntaxe complète.

Cette nouvelle syntaxe, encore très peu traitée par les navigateurs, permet de mélanger un nombre quelconque d'images, tout en dosant l'opacité de chacune de ces images.

Mélange de plusieurs images
(syntaxe complète)
 
Mélange d'une image et d'une dégradé de couleurs
(syntaxe complète)
Mélange d'une image et d'une couleur
(syntaxe complète)

Support de la fonction cross-fade().

La fonction cross-fade() est encore mal prise en charge par les navigateurs, comme vous le verrez sur le tableau des compatibilités ci-dessous.

Remarques :

(1) Nécessite le préfixe du navigateur -webkit-.

1
Fonction
cross-fade()
Estimation de la prise en charge globale.
95%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

Baidu Browser

QQ Browser

Opéra Mobile

Firefox

Chrome

Safari

Edge

Opéra

Chrome pour Androïd

Safari sur IOS

Samsung Internet

UC Browser pour Androïd

Androïd Brower

Firefox pour Androïd

KaiOS Browser

Opéra mini

Historique de la fonction cross-fade().

Voir aussi, concernant le traitement des images.

Les spécifications CSS éditées par le W3C sont organisées en modules. La fonction cross-fade() fait partie du module CSS Images Module qui regroupe tout ce qui concerne le type image (les dégradés par exemple).

Propriétés :

image-orientation
Définit l'orientation d'une image (doit-elle être tournée de 90° ?)
image-rendering
Définit le mode de mise à l'échelle des images.
object-fit
Définit comment un contenu multimédia (image, vidéo) doit s'adapter aux dimensions de son contenant.
object-position
Définit la position d'une image ou d'une vidéo par rapport à son container.

Fonctions :

conic-gradient()
Définit un dégradé de couleurs conique.
element()
Récupère l'aspect d'un élément sous forme d'une image.
image()
Désigne une image en précisant, le cas échéant, son sens de lecture.
image-set()
Propose au navigateur un choix d'images afin que ce dernier puisse choisir celle qui est le plus adapté (résolution, format...).
linear-gradient()
Détermine un dégradé de couleur évoluant de façon linéaire d'un bout à l'autre de l'élément.
radial-gradient()
Détermine un dégradé de couleur radial (depuis le centre vers les bords).
repeating-conic-gradient()
Définit un dégradé de couleurs conique, et le répète sur toute la surface de l'élément.
repeating-linear-gradient()
Détermine un dégradé de couleur linéaire et le répète sur toute la surface de l'élément.
repeating-radial-gradient()
Détermine un dégradé de couleur radial et le répète sur toute la surface de l'élément.
stripes()
Définit une image en bande de couleurs.