Page d'accueil » Codage » Comment afficher du texte sur une image avec CSS3 Mix-blend-Mode

    Comment afficher du texte sur une image avec CSS3 Mix-blend-Mode

    Fonds d'image fière allure derrière de grands textes d'affichage. Cependant, son implémentation CSS n’est pas aussi simple. Nous pouvons utiliser le background-clip: texte; propriété, mais il s'agit toujours d'une fonctionnalité expérimentale sans un support suffisant du navigateur.

    L’alternative CSS pour afficher un fond d’image derrière un texte est en utilisant le mode mélange propriété. Modes de fusion pour les éléments HTML sont assez bien supportés par tous les navigateurs de bureau et mobiles modernes, à l'exception de quelques-uns, tels que Internet Explorer.

    Dans ce post, nous allons voir comment mode mélange (deux de ses modes spécifiquement) fonctionne, et comment vous pouvez l'utiliser pour afficher un texte avec un fond d'image dans deux cas d'utilisation:

    1. quand l'image de fond peut être vu à travers le texte
    2. quand l'image de fond tourne autour le texte

    Voir quelques exemples dans la démo ci-dessous (les images proviennent de unsplash.com).

    le mode mélange La propriété CSS définit comment la contenu et le toile de fond d'un élément HTML devrait mélanger les couleurs.

    Regardez la liste des modes de fusion, parmi lesquels nous allons utiliser multiplier et écran dans ce post.

    Commençons par examiner le fonctionnement de ces deux modes de fusion spécifiques..

    Comment multiplier Et écran les modes de fusion fonctionnent

    Les modes de fusion sont techniquement des fonctions qui calculer une valeur de couleur finale en utilisant les composantes de couleur d'un élément et de sa toile de fond.

    le multiplier mode de fusion

    dans le multiplier mode de fusion, les couleurs individuelles des éléments et leurs fonds sont multiplié, et la couleur résultante est appliquée à la version finale mélangée.

    le multiplier Le mode de fusion est calculé selon la formule suivante:

    B (Cb, Cs) = Cb × Cs

    où:Cb - Composant de couleur de la toile de fondCs - Composant couleur de l'élément sourceB - Fonction de mélange

    Quand Cb et Cs sont multipliés, la couleur résultante est un mélange de ces deux composants de couleur et aussi sombre que la plus sombre des deux couleurs.

    Pour créer l’arrière-plan de notre image texte, nous devons nous concentrer sur le cas lorsque Cs (la composante couleur de l’élément source) est soit noir ou blanc.

    Si Cs est noir sa valeur est 0, la couleur de sortie sera également noir, car Cb × 0 = 0. Ainsi, lorsque l'élément est coloré en noir, il peu importe la couleur de la toile de fond, tout ce que nous pouvons voir après le mélange est noir.

    Si Cs est blanc sa valeur est 1, la couleur de sortie est ce que vous voulez Cb c'est parce queCb × 1 = Cb. Donc, dans ce cas, nous voyons la toile de fond directement tel quel.

    le écran mode de fusion

    le écran mode de fusion fonctionne de manière similaire à la multiplier mode de fusion, mais avec le résultat opposé. Donc, un premier plan noir montre la toile de fond tel quel, et un le premier plan blanc montre le blanc quelle que soit la toile de fond.

    Voyons rapidement sa formule:

    B (Cb, Cs) = Cb + Cs - (Cb × Cs)

    Quand Cs est noir (0), la couleur de fond sera montrée après le mélange, comme suit:

    Cb + 0 - (Cb × 0) = Cb + 0 - 0 = Cb

    Quand Cs est blanc (1) le résultat sera blanc avec n'importe quel fond, comme:

    Cb + 1 - (Cb × 1) = Cb + 1 - Cb = 1

    1. Image montrée à travers le texte

    Pour afficher le texte affiché à travers son image d'arrière-plan, nous utilisons le écran mode de fusion avec texte noir et espace blanc.

     

    Eau

     .toile de fond largeur: 600px; hauteur: 210px; background-image: url (someimage.jpg); taille du fond: 100%; marge: auto;  .text color: black; couleur de fond: blanc; mode mix-blend: écran; largeur: 100%; hauteur: 100%; taille de police: 160 pts; poids de police: plus gras; text-align: center; hauteur de ligne: 210px; marge: 0;  

    Actuellement, notre texte ressemble à celui ci-dessous, à l'étape suivante, nous allons ajouter une couleur personnalisée à l'arrière-plan.

    Ajout de couleur

    Comme vous l'avez peut-être deviné, l'utilisation des modes de fusion ne nous laisse que deux choix de couleur pour la zone entourant le texte. - noir ou blanc. toutefois avec du blanc, il est possible d'ajouter de la couleur en utilisant une superposition, si la couleur de superposition correspond bien à l'image utilisée.

    Pour ajouter de la couleur à la zone environnante, ajoutez un

    au HTML pour une superposition, et lui donner un couleur de fond avec haute transparence. Également utiliser le mode mix-blend: multiplie propriété pour la superposition, car il aide la couleur de fond de la superposition à mélanger un peu mieux avec l'image apparaissant à l'intérieur du texte.

     

    Eau

     .superposition couleur d'arrière-plan: rgba (0,255,255, .1); mode mix-blend: multiplie; largeur: 100%; hauteur: 100%; position: absolue; en haut: 0;  

    Avec cette technique, nous pourrions colorier la zone entourant le texte avec le fond de l'image:

    Notez que la technique ne fonctionne bien qu'avec subtiles couleurs transparentes. Si vous utilisez une couleur totalement opaque ou une couleur qui ne correspond pas à l'image, l'image apparaissant dans le texte aura une teinte très visible de la couleur utilisée., éviter les couleurs opaques.

    2. Texte entouré par le fond de l'image

    Même si un texte normal est placé sur un fond d’image nécessite la même technique, Je vais vous montrer un exemple de la façon dont la démo ci-dessus ressemble lorsque le l'effet est inversé, c'est-à-dire lorsque la couleur du texte est blanche et que l'arrière-plan est noir.

     .text color: white; couleur de fond: noir; mode mix-blend: écran; largeur: 100%; hauteur: 100%; taille de police: 160 pts; poids de police: plus gras; text-align: center; hauteur de ligne: 210px; marge: 0;  

    Vous pouvez utiliser le même recouvrement afin d'ajouter de la couleur au texte, à moins que vous ne vouliez le garder en blanc.

     .superposition couleur d'arrière-plan: rgba (0,255,255, .1); mode mix-blend: multiplie; largeur: 100%; hauteur: 100%; position: absolue; en haut: 0;  

    Et ci-dessous, vous pouvez voir à quoi ressemble le cas inverse:

    Notez que dans Internet Explorer ou tout autre navigateur ne prenant pas en charge la mode mélange propriété, l'arrière-plan de l'image n'apparaîtra pas et le texte restera noir (ou blanc).