Comunidad de diseño web y desarrollo en internet online

Hover CSS en tres elementos diferentes

Citar            
MensajeEscrito el 12 Oct 2011 12:55 am
Hola a todos!

El motivo de este post es porqué quiero saber si se puede hacer una acción de hover sobre un elemento y que afecte a varios elementos, es decir:

Imaginemos que tenemos una imagen, título y texto.

Código HTML :

<div id="contenedor">
    <div id="imagen"></div>
   <h1>Título</h1>
   <p>Esto es un texto que se debe iluminar al pasar el mouse</p>
</div>


Entonces lo que quiero hacer es que al dar rollOver sobre la imagen, también cambie de color el título y el texto que están dentro de h1 y p.

Mi código en Css es algo así:

Código :

#imagen a:hover
{
   background-position: bottom;
}


Pero no se como hacer para que afecte a h1 y a p

Espero me puedan ayudar con este problemita! Saludos y gracias por su tiempo

Por chamanmazateco

8 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 12 Oct 2011 03:10 am
Solo se puede hacer con javascript. Creo

Código HTML :

<style type="text/css">
.normal_parrafo { color:#c0c; }
.normal_titulo { color:#c0c; }
.resaltado_parrafo { color:#804040; }
.resaltado_titulo { color:#804040; }
</style>

<script type="text/javascript">
function cambiarEstado(estado) {
       var titulo = document.getElementById('titulo');
       var parrafo = document.getElementById('parrafo');
       if(estado) {
            parrafo.className = 'resaltado_parrafo';
            titulo.className = 'resaltado_titulo'
            return;
       }
      parrafo.className = 'normal_parrafo';
      titulo.className = 'normal_titulo'
}
</script>

</head>
<body>
<div id="contenedor">
     <div id="imagen" style="height:80px; width:90px; background:#000;" onMouseOver="cambiarEstado(true);" onMouseOut="cambiarEstado(false);" ></div>
     <!-- solo le pongo el style para que se vea -->
     <h1 id="titulo" class="normal_titulo">Título</h1>
     <p id="parrafo" class="normal_parrafo">Esto es un texto que se debe iluminar al pasar el mouse</p>
</div>
</body>
</html>


si no le quiere poner ids a los elementos <h1> y <p> puede poner esto:

Código Javascript :

<script type="text/javascript">
function cambiarEstado(estado) {
       var contenedor = document.getElementById('contenedor');
       var titulo = contenedor.getElementsByTagName('h1')[0];
       var parrafo = contenedor.getElementsByTagName('p')[0];
       if(estado) {
            parrafo.className = 'resaltado_parrafo';
            titulo.className = 'resaltado_titulo'
            return;
       }
      parrafo.className = 'normal_parrafo';
      titulo.className = 'normal_titulo'
}
</script>


Hay varias formas de hacerlo, no solo cambiando la clase, podria cambiar las propiedades directamente desde javascript, si los elementos fueran hijos podria cambiarlo solo con css

Código HTML :


<style type="text/css">
.algunaclase { background:#c0c; }
.algunaclase .imagen { height:80px; width:90px; background:url('algunaimagen.png'); }
.algunaclase p { color:#ff0000; }

.algunaclase:hover .imagen { background:url('algunaimagen.png'); }
.algunaclase:hover p { color:#aaa; }
</style>

</head>
<body>
<div class="algunaclase">
   <div class="imagen"></div>
   <p>Lorem ipsum dolor sti amet, ...</p>
</div>
</body>
</html>


Saludos. :lol::lol:

Por pablon

38 de clabLevel



Genero:Masculino  

Conozco a un grupo de personas que resuelve cualquier tipo de problema.

opera
Citar            
MensajeEscrito el 12 Oct 2011 02:34 pm
Woooooaaaaooo!!! Gracias!!! Se ve muy bueno!! De hecho mis elementos si son hijos de una clase, pero lo voy a intentar con javascript a ver si puedo hacer el cambio, se me hace más practico, no tengo mucha habilidad con este lenguaje pero siempre es buen momento para comenzar.

Gracias Pablo!! Si lo puedo lograr postéo la respuesta. Si no, por aquí te daré lata de nuevo!

Buen día!!

Por chamanmazateco

8 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 12 Oct 2011 09:28 pm
eso no es CSS3? olvidate de que se vea en ie

Por studio25

5 de clabLevel



Genero:Masculino  

Diseñador Web

chrome
Citar            
MensajeEscrito el 13 Oct 2011 12:43 pm
No, no es.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 27 Oct 2011 09:30 pm
Hola.
Es posible acceder a elementos hijos de hijos... O sea, tomando el ejemplo de pablon

Código :

<style type="text/css">

.algunaclase { background:#c0c; }
.algunaclase .imagen { height:80px; width:90px; background:url('algunaimagen.png'); }
.algunaclase p { color:#ff0000; }
.algunaclase:hover .imagen { background:url('algunaimagen.png'); }
.algunaclase:hover p { color:#aaa; }

</style>

</head>

<body>

<div class="algunaclase">
   <div class="imagen"></div>
   <p>Lorem ipsum dolor sti amet, ...</p>
</div>

</body>


Si el div imagen tuviera otro elemento anidado, cómo puedo acceder a él desde un hover sobre algunelemento?

Por calamargo

10 de clabLevel



 

Bs As, Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.