Visualizzazione dei risultati da 1 a 3 su 3

Discussione: testo a contrasto

  1. #1

    testo a contrasto

    Vorrei creare un effetto apparentemente semplice da realizzare:

    Ho un titolo <h1> che in parte sormonta una foto
    vorrei fare in modo che le lettere del titolo <h1> che sormontano la foto da nere diventino bianche

    ovviamente sia il titolo che la foto sono dinamici per cui potrebbero cambiare all'occorrenza.

    Ho provato senza successo con: mix-blend-mode: difference;

    provo ad allegare il codice attuale che non da perfettamente l'effetto desiderato

    codice:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Testo a constrasto</title>
    <style type="text/css">
        
    .photo {
        position: absolute;
        top: 0;
        left: 150px;
        width: 600px;
        height: 600px;
        z-index: 0;
    }
        
    .title {
        mix-blend-mode: difference;
        position: absolute;
        top: 0;
        left: 0;
        z-index: 1;
        background-color: white;
        background-clip: text;
        -webkit-background-clip: text;
        color: black;
    }
    
    
        
    </style>
    </head>
    
    
    <body>
        <h1 class="title">SCARICA LE NOSTRE<br>BROCHURE</h1>
        <img src="https://media.adeo.com/marketplace/LMIT/36603000/236129.jpeg" alt="Foto" class="photo">
    </body>
    </html>

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Direi che hai mischiato un po' di metodi.

    Lasciando perdere mix-blend-mode, se l'intento è quello di dare un diverso colore ad una parte del testo, puoi certamente usare la proprietà background-clip:text, applicandola però con criterio.

    Tieni infatti conto che tale proprietà non fa altro che "ritagliare" lo sfondo usando il testo come maschera.
    Se il testo ha un suo proprio colore opaco (come nel tuo esempio) non vedrai alcun effetto, perché il testo stesso copre lo sfondo che gli sta sotto (il quale segue esattamente la stessa sagoma del testo).

    Per poter apprezzare l'effetto dovrai impostare il testo con il colore "transparent".
    A questo punto potresti applicare lo sfondo con una interpolazione lineare che va dal nero al bianco, con un passaggio netto nel punto in cui inizia l'immagine sottostante.

    Una cosa del genere:
    codice:
    .title {
        position: absolute;
        top: 0;
        left: 0;
        z-index: 1;
        color: transparent;
        background: text linear-gradient(to right, #000, #000 150px, #fff 150px);
    }

    Ho usato la forma contratta per la proprietà background.
    codice:
    background: text linear-gradient(to right, #000, #000 150px, #fff 150px);
    Questo equivale a scrivere per esteso le relative sotto-proprietà:
    codice:
    background-clip: text;
    background-image: linear-gradient(to right, #000, #000 150px, #fff 150px);
    Nota che ho usato la funzione linear-gradient per creare una immagine di sfondo che va appunto dal nero al bianco.

    Tieni inoltre conto che non c'è nulla di "automatico"; il valore 150px (che delimita il passaggio da nero a bianco) corrisponde (e deve corrispondere) al valore che hai impostato per la proprietà left dell'elemento .photo in modo che il testo cambi colore esattamente in quel punto.

    Certamente il contenuto testuale o l'immagine possono variare senza problemi, per cui otterrai comunque lo stesso effetto, ma la loro posizione non dovrà essere variata (cioè, dovrà essere decisa a priori in modo da impostare opportunamente l'effetto). Analogamente, la larghezza del testo non dovrebbe superare il limite destro dell'immagine, perché quella parte di testo è di colore bianco a prescindere che si trovi sopra l'immagine o meno.

    Vedi se può andare.
    Buon proseguimento
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    A mio avviso, per una soluzione universale, ti consiglio di tenere il testo nero e contornarlo di bianco da 1 px
    Io nella vita ho visto cose che voi astemi neanche potete immaginare.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.