2011-03-04 9 views
22

aquí está mi problema.
Tengo un div que contiene otros dos divs: básicamente uno para el encabezado, uno para el contenido.CSS aligerar elementos secundarios en mouseover padre

me gustaría aligerar (nivel alfa cambio, o se da la bienvenida algún otro método), cuando el usuario apunta el puntero del ratón sobre el padre div. Los colores de ambos niños divs deben cambiar y ser ligeramente más claros. Me gustaría evitar javascript si es posible.

¿Cómo hacer esto en CSS?

Respuesta

51

¿Le gusta a esto?

Live Demo

CSS relevante:

#container:hover .inner { 
    opacity: 0.8 
} 

HTML:

<div id="container"> 
    <div id="left" class="inner"></div> 
    <div id="right" class="inner"></div> 
</div> 

CSS irrelevante:

#container { 
    width: 300px; 
    padding: 30px; 
    overflow: hidden 
} 

.inner { 
    width: 40%; 
    height: 250px; 
    background: #ccc 
} 
#left { 
    float: left 
} 
#right { 
    float: right 
} 

CSS verdaderamente irrelevante:

#container { 
    background: #fcecfc; /* old browsers */ 
    background: -moz-linear-gradient(top, #fcecfc 0%, #fba6e1 50%, #fd89d7 51%, #ff7cd8 100%); /* firefox */ 

    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fcecfc), color-stop(50%,#fba6e1), color-stop(51%,#fd89d7), color-stop(100%,#ff7cd8)); /* webkit */ 

    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fcecfc', endColorstr='#ff7cd8',GradientType=0); /* ie */ 
} 
+0

por cierto. ¿cómo puedo cambiar la opacidad solo del color de fondo, para que no afecte el color del texto? – ZolaKt

+0

@ZolaKt: utiliza un fondo 'rgba': [http://jsfiddle.net/thirtydot/NHbn8/1/](http://jsfiddle.net/thirtydot/NHbn8/1/) - [mira aquí] (http : //stackoverflow.com/questions/4788564/transparency-and-text-problem/4788642#4788642) para saber cómo hacerlo cruzando el navegador. – thirtydot

+0

@ZolaKt: http://jsfiddle.net/thirtydot/NHbn8/2/? Editar: borraste ese último comentario, así que supongo que lo descubriste tú mismo. – thirtydot

16
#div:hover #div1{ 
    color:#lightercolor; 
    } 
    #div:hover #div2{ 
    color:#lightercolor; 
    } 
+0

Este código hace eso. (div1 y div2 son los niños, y div son los padres) :) – Orbit

+0

Lo siento, mi mal. No lo leí bien – ZolaKt

+0

Oh, no hay problema, espero que ayude, no dude en aceptar si funciona :) – Orbit

6

Puede usar #div: hover, quizás?

#parent_div:hover #child_div_1 { background-color: #333; } 
#parent_div:hover #child_div_2 { background-color: #666; } 
Cuestiones relacionadas