Ich bin ein kompletter Neuling, wenn es um HTML und CSS geht und ich baue meine allererste Website. Ich möchte ein Bild erstellen, das beim Überfahren Text anzeigt und das Bild auf eine niedrigere Deckkraft ausblendet. Ich habe das Ausblenden und die Änderung der Opazität. Mein einziges Problem ist, dass der Text, der in dem Element enthalten ist, das ich ausblenden möchte, auch verblasst und ich möchte es bei 100% Opazität behalten. Ich habe versucht, die Deckkraft für den Text auf 1 zu setzen, aber es überschreibt nicht die Deckkraftänderung seines Containers. Zum Beispiel habe ich:CSS, wie Deckkraft des Containers aber nicht Text ändern?
<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>
Und auch
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%;
}
Dies schafft die schweben, die ich will, aber ich kann den Text Undurchsichtigkeit bei 100% nicht halten.
Edit: Vielen Dank für die Bereitstellung der rgba() Lösung, dies löst das Problem. Ich habe einen anderen Fall des gleichen Problems, außer dass es ein Hintergrundbild anstelle einer festen Hintergrundfarbe gibt. Gibt es eine ähnliche Problemumgehung?
Edit2: Probleme mit Fade Breaking nach dem Ersetzen der Deckkraft Änderung mit einem separaten transparenten. 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;
}
nur den Hintergrund ändern Farbe zum helleren Grauton und sorge dich nicht über die Undurchsichtigkeit. – shammelburg
Also klar, Sie möchten ein Div mit einem Hintergrundbild, das ausgeblendet wird, wenn Sie darauf schweben, aber der Text darin bleibt bei voller Deckkraft? Dies wird problematisch sein, da die Deckkraft relativ zum Elternteil ist. Wenn das übergeordnete div eine Deckkraft von 0,5 hat und Sie das untergeordnete Element auf eine Deckkraft von 1 setzen, erhalten Sie effektiv 1 * 0,5 = 0,5. Mit anderen Worten, ein Kind kann nicht opaker sein als sein Elternteil. Als Workaround könnten Sie stattdessen ein IMG-Element anstelle von CSS verwenden ODER ein bisschen clever: http://jsfiddle.net/gtHTv/ – Dre