Creare un testo trasparente dietro un div

enzo_88

Nuovo Utente
13 Set 2023
4
0
1
Salve a tutti ragazzi. Sono due giorni che provo a ricreare questo testo trasparente dietro un divi con opacità. qualcuno mi può aiutare? grazie in anticipo
Immagine.png
 

WmbertSea

Moderatore
Membro dello Staff
MOD
28 Nov 2014
437
73
28
Ciao, con qualche rapida ricerca ho trovato la stessa richiesta (con la stessa immagine) postata circa un anno fa su stackoverflow

Attualmente c'è una risposta in cui è data una soluzione usando la proprietà css mask. Viene però specificato che funziona solo su chrome.

In effetti ho provato su firefox e non funziona (anche adeguando il css proposto), sebbene tale proprietà sia comunque supportata attualmente.

Dopo aver cercato altre soluzioni ho provato ad elaborare qualcosa usando background-clip (per creare il testo ritagliato) e backdrop-filter (per l'effetto sfocatura).
Abbinare i due effetti non è stato così semplice per via dei diversi comportamenti tra i vari browser.

In qualche modo sono riuscito a far tornare le cose usando un bel po' di css.
Qui una soluzione:
HTML:
<div class="wrap">
  <div class="col col_l">For</div>
  <div class="col col_r">est</div>
</div>
CSS:
html, body {
  width: 100%;
  height: 100%;
  margin: 0;
}
.wrap {
  position: relative;
  width: 100%;
  height: 100%;
  text-transform: uppercase;
  font: 900 120pt 'Arial Black', Gadget, sans-serif;
  color: transparent;
  background: #0a2925 url(https://picsum.photos/id/353/1024/768) no-repeat center ;
  background-size: cover;
}
.wrap::before {
  content: '';
  display: block;
  position: absolute;
  width: 50%;
  height: 100%;
  background-color: #fff3;
  backdrop-filter: blur(10px);
}
.col {
  display: flex;
  position: absolute;
  z-index: 1;
  align-items: center;
  height: 100%;
}
.col_l {
  box-sizing: border-box;
  justify-content: end;
  text-align: right;
  width: 100%;
  padding-right: 50%;
  background: inherit;
  -webkit-background-clip: text;
  background-clip: text;
}
.col_r {
  top: 0;
  right: 0;
  width: 50%;
  color: #fff;
}

Qui l'esempio su codepen:

Testato su chrome (v117) e firefox (v112).

Prova e fai sapere.
 

enzo_88

Nuovo Utente
13 Set 2023
4
0
1
Grazie mille per la risposta così dettagliata. ho provato a cambiare il design e mi da questo problema. la linea degli alberi non segue quella dello sfondo
 

Allegati

  • risultato.png
    risultato.png
    957 KB · Visite: 46
  • html.png
    html.png
    143,4 KB · Visite: 44
  • css.png
    css.png
    270,7 KB · Visite: 41

WmbertSea

Moderatore
Membro dello Staff
MOD
28 Nov 2014
437
73
28
Sì, è necessario che il contenitore principale e l'elemento in cui c'è il testo (nel mio esempio: wrap e col_l ) abbiano stesse dimensioni e posizione, perché entrambi, in modo specifico, hanno lo stesso background che deve chiaramente coincidere.

Questo è un vincolo dovuto al diverso comportamento tra browser, nello specifico chrome. La storia è lunga.

A grandi linee, inizialmente avevo infatti provato a sfruttare un solo background, cioè applicandolo solo al contenitore principale. In tal caso l'elemento col testo, applicando background-clip, riceve il background "originale" del contenitore.

Però sorge un problema nel momento in cui inserisco l'elemento per creare l'effetto sfocato sotto il testo.

A quel punto con firefox ho ottenuto il risultato atteso, cioè il background originale viene mantenuto dentro il testo, invece ho riscontrato che chrome applica il background-clip dopo l'elaborazione di tutto ciò che sta sotto l'elemento testo. Per cui, sì, mi dava il testo ritagliato con lo sfondo, ma questo risultava sfocato, rendendo quindi il risultato inconcludente.

A tale proposito ho effettuato altre prove, per cui sono arrivato alla conclusione che sia necessario applicare uno stesso sfondo per l'elemento testo (vedi il "background: inherit") e che questo deve chiaramente avere la stessa dimensione e posizione del genitore, in modo che l'immagine di sfondo coincida.

Tenendo conto di questo, il tuo ".text" deve avere width ed height al 100%. Potrai eventualmente posizionare il testo, dentro l'elemento, usando altre proprietà che non incidano sulla dimensione e posizione proprie del relativo elemento.

Prova e fai sapere se riesci a correggere.
 

enzo_88

Nuovo Utente
13 Set 2023
4
0
1
Ho fatto un'ulteriore prova.
Come descritto ho impostato l'altezza e larghezza al 100% per l'allineamento dell'immagine nel testo. Dopo aver fatto ciò il testo ha perso l'allineamento verticale e orizzontale, così ho inserito un display flex per allineare il tutto.
Il risultato è sorprendente.
Grazie di cuore.
 

Allegati

  • Immagine.png
    Immagine.png
    865,5 KB · Visite: 46
  • css.png
    css.png
    307,6 KB · Visite: 37

WmbertSea

Moderatore
Membro dello Staff
MOD
28 Nov 2014
437
73
28
Perfetto :)
Ottima scelta anche per l'allineamento, flexbox si presta bene.


PS: per postare del codice, se relativamente poco, meglio usare gli appositi tag (vedi "Più opzioni... > Codice" tra gli strumenti dell'editor messaggi) piuttosto che allegarlo come immagine, Questo può risultare importante per il seo e per le ricerche nel forum.
 
Discussioni simili
Autore Titolo Forum Risposte Data
R Bootstrap 4 - creare una finestra di testo responsive sopra un Carousel jQuery 1
I Creare Qsl radioamatore con testo editabile Presentati al Forum 1
B [PHP] Creare un'interfaccia di inserimento testo in varie posizioni PHP 1
I Creare file immagine da testo base64 PHP 2
S Come creare un campo di testo e un pulsante che linka ad una pagina? CMS (Content Management System) 3
R Area di testo: creare un collegamento esterno selezionando un parola. HTML e CSS 2
R Creare un'area di testo scorrevole HTML e CSS 3
D Creare una casella di testo come variabile PHP 5
P come creare l'effetto riflesso su un testo in flash? Flash 2
R Creare un file di Microsoft Word con ASP : Testo Ok. E le immagini? Classic ASP 1
Eliox creare un'introduzione da un testo Snippet PHP 0
M Creare traccia di download file sul server HTML e CSS 2
A Cerco programmatore/sviluppatore per creare forum Offerte e Richieste di Lavoro e/o Collaborazione 2
L Creare ancore interne alla pagina PHP 1
I Creare un banner temporaneo JavaScript Javascript 0
C Creare Tabella Dati Meteo prelevandoli da dei Tags in un altro foglio PHP 27
simgia Cordova errore quando cerco di emulare o creare la app Sviluppo app per Android 2
U PHP creare un file excel dopo ricerca nel DB PHP 0
A Creare un cronometro PHP 5
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
F Creare elementi html con javascript Javascript 3
Shyson Modificare codice e creare link PHP 0
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
L Creare una forma geometrica Photoshop 1
M [Cerco] aiutanti per creare sito Offerte e Richieste di Lavoro e/o Collaborazione 8
S Libreria PHP per creare file dwg o dxf PHP 0
R Come creare sistema Add to homescreen PHP 3
L Creare un countdown con giorno specifico della settimana PHP 3
W Creare link di una dato Classic ASP 0
W creare file .jar Java 2
M Creare con il Vb 2010 Il Classico Notes di Windows Vista Visual Basic 1
MarcoGrazia Creare una password Snippet Javascript 0
J creare pagina php di prenotazione PHP 5
A Creare un modulo di ricerca avanzata con dreamweaver HTML e CSS 0
INTEROPERABILITY Sviluppatrice/formatrice creare APP Offerte e Richieste di Lavoro e/o Collaborazione 0
L Creare una pagina pre-home WordPress 1
G Creare side-bar non visibile da dispositivi mobile HTML e CSS 0
L creare oggetti da una classe tramite un form Javascript 0
Web93 CREARE SITO WEB COMICS CON WORDPRESS WordPress 0
maxnegri Contare sessioni aperte e creare condizione PHP 1
A Come creare pulsante donazione PayPal HTML e CSS 5
L [CERCO] Creare blog su WordPress con tema Divi Offerte e Richieste di Lavoro e/o Collaborazione 3
F Creare un set di date a seconda del frazionamento scelto da inserire in MySQL PHP 6
R [Photoshop] Creare Azione Photoshop 1
F [PHP] creare tabella e tasto cerca PHP 3
A Creare con Javascript un percorso all'interno di uno spazio Javascript 0
B [PHP] Creare PDF dopo inserimento dati form PHP 4
A [HTML] Creare sito web per eLearnig HTML e CSS 2

Discussioni simili