Sono un newbie completo quando si tratta di HTML e CSS e sto costruendo il mio primissimo sito web. Voglio creare un'immagine che, al passaggio del mouse, visualizza il testo e sfuma l'immagine a una bassa opacità. Ho risolto tutte le dissolvenze e il cambio di opacità. Il mio unico problema è che il testo, che è contenuto all'interno dell'elemento che voglio sbiadire, si affievolisce e vorrei mantenerlo al 100% di opacità. Ho provato a impostare l'opacità su 1 per il testo, ma non sovrascrive il cambiamento di opacità del suo contenitore. Ad esempio, ho:CSS come cambiare l'opacità del contenitore ma non il testo?
<div class="textbox">
<p class="boxtext">This is the text that will eventually go inside the box. It is blah lljsd iofu isduf iou eiosu dfi eiou sdiofu ioe soidfu oidu foiu foisu doiu eoiusodidfu oei osidfuosdiu ieu oisduf oiueoisu dfoi oiu soifu iod fioeo dfs.</p>
</div>
E anche
div.textbox {
background-color: white;
margin-left: 2.5vw;
border: 2px solid lightgray;
width: 15vw;
height: 600px;
float: left;
}
div.textbox:hover {
background-color: lightgray;
border: 2px solid lightgray;
opacity: 0.5;
}
p.boxtext {
margin: 5% 5%;
}
Questo crea l'hover che voglio, ma non riesco a tenere l'opacità del testo al 100%.
Modifica: Grazie per aver fornito la soluzione rgba(), questo risolve il problema. Ho un altro caso dello stesso problema, tranne per il fatto che esiste un'immagine di sfondo invece di un colore di sfondo a tinta unita. C'è una soluzione simile?
Edit2: Problemi con dissolvenza in chiusura dopo la sostituzione del cambio di opacità con un trasparente separato .png.
a#imglink1 {
background-image: url('https://www.profilesinhistory.com/wp-content/uploads/2012/11/Apollo-11-NASA-Photograph-Signed-Neil-Armstrong-Michael-Collins-Buzz-Aldrin-200x200.jpg');
width: 200px;
height: 200px;
float: left;
-o-transition: 0.5s;
-ms-transition: 0.5s;
-moz-transition: 0.5s;
-webkit-transition: 0.5s;
transition: 0.5s;
}
a#imglink1:hover {
background-image: url('../images/apollo_transparent.png');
-o-transition: 1s;
-ms-transition: 1s;
-moz-transition: 1s;
-webkit-transition: 1s;
transition: 1s;
}
a#imglink1:hover p {
visibility: visible;
}
basta cambiare lo sfondo colore a tonalità di grigio più chiara e non preoccuparti per l'opacità. – shammelburg
Quindi per chiarire, vuoi un div con un'immagine di sfondo che svanisce quando ci si passa sopra, ma il testo al suo interno rimane in piena opacità? Ciò sarà problematico in quanto l'opacità è relativa al genitore. Se il div padre ha un'opacità di 0,5 e si imposta l'elemento figlio su un'opacità pari a 1, si ottiene effettivamente 1 * 0,5 = 0,5. In altre parole, un bambino non può essere più opaco del suo genitore. Come soluzione alternativa, potresti invece utilizzare un elemento img anziché CSS o ottenere un po 'di intelligenza: http://jsfiddle.net/gtHTv/ – Dre