En primer lugar, supongo que esto es demasiado complejo para CSS3, pero si hay una solución en algún lugar, me encantaría ir con eso.
El HTML es bastante sencillo.
<div class="parent">
<div class="child">
Text Block 1
</div>
</div>
<div class="parent">
<div class="child">
Text Block 2
</div>
</div>
El div hijo está configurado para mostrar: ninguno; por defecto, pero luego cambia para mostrar: bloque; cuando el mouse se encuentra sobre el div padre. El problema es que este marcado aparece en varios lugares en mi sitio, y solo quiero que el niño se muestre si el mouse está sobre su padre, y no si el mouse está sobre cualquiera de los otros padres (todos tienen la misma clase nombre y sin ID).
He intentado usar $(this)
y fue .children()
en vano.
$('.parent').hover(function(){
$(this).children('.child').css("display","block");
}, function() {
$(this).children('.child').css("display","none");
});
fuente
:hover
es una de las "pseudo-clases dinámicas" definidas por CSS2 ( aquí está la especificación ). Aquí hay un ejemplo rápido: http://jsfiddle.net/5FLr4/ . esto funciona para mi..parent:not(:hover) .child { display: none; }
parece funcionar bien para mí, aunque ciertamente no estoy preocupado por IE6. Pero de esta manera puedo usarlo en elementos que no quiero tener unadisplay
propiedad uniforme .No es necesario usar JavaScript o jquery, CSS es suficiente:
VER DEMO
fuente
Uso
toggleClass()
.donde
color
esta la clase Puede diseñar la clase como desee para lograr el comportamiento que desea. El ejemplo muestra cómo se agrega y elimina la clase al entrar y salir del mouse.Verifique el ejemplo de trabajo aquí .
fuente
fuente
La respuesta de Stephen es correcta, pero aquí está mi adaptación de su respuesta:
HTML
CSS
jQuery
Puede ver este ejemplo trabajando en jsFiddle .
fuente
Tengo lo que creo que es una mejor solución, ya que es escalable a más niveles, tantos como desee, no solo dos o tres.
Uso bordes, pero también se puede hacer con cualquier estilo deseado, como el color de fondo.
Con el borde, la idea es:
Puede probarlo en: http://jsbin.com/ubiyo3/13
Y aquí está el código:
fuente
Si está utilizando el estilo Bootstrap de Twitter y JS base para un menú desplegable:
Esta es la pieza que falta para crear menús desplegables (que no son molestos)
fuente
No estoy seguro de si hay terribles razones para hacer esto o no, pero parece funcionar conmigo en la última versión de Chrome / Firefox sin ningún problema de rendimiento visible con muchos elementos en la página.
Pero de esta manera, todo lo que necesita es aplicar
parent-hover-show
a un elemento y el resto se ocupa, y puede mantener el tipo de visualización predeterminado que desee sin que siempre sea "bloque" o hacer múltiples clases para cada tipo.fuente
Para cambiarlo de CSS, ni siquiera necesita establecer la clase secundaria
fuente