Foros del Web » Creando para Internet » CSS »

Problema con el a:hover de una imagen

Estas en el tema de Problema con el a:hover de una imagen en el foro de CSS en Foros del Web. Buenos días, tengo una duda sobre una imagen que tengo con un enlace externo. He creado una imagen como botón para mi web cuando paso ...
  #1 (permalink)  
Antiguo 25/01/2016, 03:53
 
Fecha de Ingreso: julio-2015
Mensajes: 54
Antigüedad: 8 años, 9 meses
Puntos: 1
Problema con el a:hover de una imagen

Buenos días,

tengo una duda sobre una imagen que tengo con un enlace externo.

He creado una imagen como botón para mi web cuando paso el ratón por encima de ella el efecto es cambiar por otra... este es el código:


.myclass > a {
background: url(https://www.miweb.com/img/bottom.png) no-repeat left center;
text-indent: -9999px;
width: 135px;

}

.myclass > a:hover {
background: url(https://www.miweb.com/img/bottom2.png) no-repeat left center;
text-indent: -9999px;
width: 135px;

}

El problema es que cuando se pasa el ratón por encima durante un segundo la imagen desaparece hasta que aparece la nueva. Es solo un segundo pero queda fatal.

¿Alguien sabe porque puede ser?

Gracias
  #2 (permalink)  
Antiguo 25/01/2016, 11:47
Avatar de g3kdigital  
Fecha de Ingreso: noviembre-2013
Ubicación: En mi apartamento en bogotá
Mensajes: 208
Antigüedad: 10 años, 5 meses
Puntos: 39
Respuesta: Problema con el a:hover de una imagen

Hola, yo creo que puede ser por 2 cosas:
  1. Las imagenes son muy pesadas y no están optimizadas para web.
  2. Puede que se solucione sí agregas la propiedad transition en la clase a, ej:

    Código CSS:
    Ver original
    1. .myclass > a {transition: background 3s ease}

Igual te tengo otras recomendaciones:

1) Para los botones, son muy pocos los casos donde necesitas usar una imagen de fondo, excepto cuando no se puedan generar estos fondos solo con CSS. Igual tienes que darle un fallback y usar un color de fondo contrastante con el texto del boton, en caso que no cargue bien la imagen, por usabilidad.
2) En vez de usar 2 imágenes, usa una sola. Busca sobre como hacer sprites con css y background-position, que además te ahorra las peticiones al servidor.
__________________
Puedes ser el tipo de persona que se amarga por lo inevitable o aceptar el reto de superarse siempre e ir a la par con el progreso.

WEB: G3K.co | codepen.io/g3kdigital

Última edición por pzin; 27/01/2016 a las 13:29 Razón: Corregir horror ortográfico
  #3 (permalink)  
Antiguo 25/01/2016, 13:34
 
Fecha de Ingreso: julio-2015
Mensajes: 54
Antigüedad: 8 años, 9 meses
Puntos: 1
Respuesta: Problema con el a:hover de una imagen

Cita:
Iniciado por g3kdigital Ver Mensaje
Hola, yo creo que puede ser por 2 cosas:
  1. Las imagenes son muy pesadas y no están optimizadas para web.
  2. Puede que se solucione sí agregas la propiedad transition en la clase a, ej:

    Código CSS:
    Ver original
    1. .myclass > a {transition: background 3s ease}

Igual te tengo otras recomendaciones:

1) Para los botones, son muy pocos los casos donde necesitas usar una imagen de fondo, excepto cuando no se puedan generar estos fondos solo con CSS. Igual tienes que darle un fallback y usar un color de fondo contrastante con el texto del boton, en caso que no cargue bien la imagen, por usabilidad.
2) Envés de usar 2 imágenes, usa una sola. Busca sobre como hacer sprites con css y background-position, que además te ahorra las peticiones al servidor.
Muchas gracias por tu tiempo y tus recomendaciones.

Te cuento que estoy usando esta clase en este caso como botón porque es wordpress necesito poner un item de menú en forma de boton cambiando la clase del mismo.Vi que para hacerlo se hacía como background. Esto es lo que buscaba

http://wordpress.stackexchange.com/q...wordpress-menu

Soy muy básica en css y no se hace sprites con css, lo miraré.

Muchas gracias

Etiquetas: background, hover, width
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:26.