back to top

Scrivere testo (con sfondo semi-trasparente) sopra un’immagine

Un effetto che è piuttosto frequente vedere sui siti e blog di nuova generazione, sono le cosiddette scritte in overlay sopra alle immagini, molto spesso accompagnate da un background scuro semitrasparente. Ecco un esempio:

In questo articolo vedremo come realizzare delle scritte sovrapposte alle nostre immagini utilizzando i fogli di stile CSS.

La prima cosa da fare è creare una struttura HTML come questa:

<div class="boximg">
  <img border="0" src="tramonto.jpg"/>
  <div class="boxtesto">
    <span class="testo">Un bellissimo tramonto!</span>
  </div>
</div>

Come potete vedere ho creato un DIV contenitore (con classe ".boximg") al cui interno posiziono la mia immagine ed un nuovo div (con classe ".boxtesto") che a sua volta contiene uno span che marca il testo che si vuole applicare.

Passiamo adesso a vedere il CSS che, materialmente, svolgerà il lavoro:

.boximg {
  position: relative;
  width: 400px; /* Stessa larghezza dell'immagine */
  height: 300px; /* Stessa altezza dell'immagine */
}
div.boxtesto {
  position: absolute;
  bottom: 0px;
  left: 0px;
  width: 100%;
  background: rgb(0, 0, 0);
  background: rgba(0, 0, 0, 0.6);
}
span.testo {
  padding: 10px;
  color: #FFFFFF;
  font: bold 24px/45px Helvetica, Sans-Serif;
  letter-spacing: -1px;
}

Il box contenitore (".boximg") ha un posizionamento relativo e dimensioni uguali a quella dell’immagine che è destinato ad ospitare. Il box contenitore del testo (".boxtesto") è il fulcro del nostro lavoro: ha un posizionamento assoluto, che lo sottrae al normale flusso degli elementi, ed è posizionato al margine inferiore sinistro del suo contenitore; ovviamente ha larghezza 100% al fine di occupare l’intero spazio disponibile in orizzontale. Interessanti, infine, le due definizioni del background mediante rgb e rgba che servono a definire lo sfondo scuro e semi-trasparente. Lo span ".testo", per finire, ha il solo scopo di stilizzare la scritta e di applicarvi un po’ di padding.

Vecchie versioni di Explorer e la trasparenza

Il codice visto in precedenza è quasi perfetto… unico neo? la trasparenza non funziona con Internet Explorer che, in nessuna delle versioni sin’ora rilasciate, supporta rgb e rgba! Al fine di correggere questo difetto e rendere il nostro CSS cross-browser, dovremo far ricorso ai cari e vecchi filtri di IE:

/* Per IE 5.5, 6 e 7*/
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);
/* Per IE 8*/
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";

Ecco, finalmente, il nostro CSS completo:

.boximg {
  position: relative;
  width: 400px; /* Stessa larghezza dell'immagine */
  height: 300px; /* Stessa altezza dell'immagine */
}
div.boxtesto {
  position: absolute;
  bottom: 0px;
  left: 0px;
  width: 100%;
  background: rgb(0, 0, 0);
  background: rgba(0, 0, 0, 0.6);
  /* Per IE 5.5, 6 e 7*/
  filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);
  /* Per IE 8*/
  -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";
}
span.testo {
  padding: 10px;
  color: #FFFFFF;
  font: bold 24px/45px Helvetica, Sans-Serif;
  letter-spacing: -1px;
}
Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

Leggi anche...

Stilizzare HR (linee orizzontali) in puro CSS

Il tag <hr> (Horizontal Rule) è un elemento HTML...

Immagini riflesse con CSS

Il Flipping è una tecnica utilizzata dai grafici per...

Applicare un bordo alle lettere di un testo con CSS

Con l'avvento di CCS3 il linguaggo di stilizzazione delle...

CSS: dimensioni relative alla viewport con vw, vh, vmin e vmax

Con l'avvento e la diffusione di CSS 3 e...

Rimuovere CSS inutilizzato

Soprattutto quando si gestiscono progetti Web based di grandi...

CSS: centrare orizzontalmente un elenco puntato

Il sistema migliore per scrivere un buon menu è...
Pubblicitร