Solución al problema de los link en IExplorer usando AlphaImageLoader en fondos con transparencia png

Como esta temporada se llevan las transparecias hemos empezado a utilizar el filter:progid:DXImageTransform.Microsoft.AlphaImageLoader() para tener como imagen de fondo de un div un png con transparencia, extensible o no, (próximamente lo describiremos detalladamente). Esto daba un problema muy serio de uso y es que los enlaces, input y demás elementos activos perdían toda actividad, no podíamos, seleccionar, pinchar o escribir.

Nuestro laboratorio I+D Friday I’m in blog ha descubierto una solución que por el momento ha funcionado en nuestras webs

Normas que deben seguir las capas para que no pierdan la actividad los link, input y demás elementos activos contenidos en ellas.

/* Definido el div */

#container_x {
width: 157px;
height: 28px;
padding-top: 8px;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=’images/background.png’,sizingMethod=’fit’);
}

/*Con su correspondiente hack para Firefox */

div>#container_x {
background: url(../images/background.png) no-repeat;
}

Se debe cumplir lo siguiente:

  • La capa que tiene el filter no puede tener “position:absolute”. Por encima de ella sí se pueden poner divs con posicionamiento absoluto conteniéndola.
  • A la capa filter debe aplicarsele estilo mediante identificador id=”", con class=”" no funcionaría.
  • Los elementos activos contenidos en la capa filter deben tener definido explícitamente el atributo position a absolute o relativo.

Por ahora esto parece ser necesario y suficiente. Seguiremos informando.


11 comentarios a esta entrada

Va a ser que sí.

[...] abilidad Rss Mejoras en soporte de CSS Soporte de PNG transparentes (que pena, con el truco que descubrimos)   Leave a Reply Name (requerido) Mail [...]

No funciona del todo bien, ya que si la capa utiliza overflow:auto y tiene un scrollbar, el scrollbar no se puede utilizar más que con la rueda del ratón y la imagen o elemento activo que tenga posición relativa no se mueve bien, y si la tiene absoluta hace lo que le viene en gana.

Soluciones, please.

Gracias de antemano.

Sinceramente, la mejor solución, esperar a que el explorer soporte las transparencias de los PNG… las diversas pruebas que hecho han acabado dando problemas, incluso colgando el explorer… por ahora, renuncio

Hola. Gracias por el artículo. Tengo un problema. El código va de maravilla en IE 6 pero en el IE 5.5 la imagenes png desaparecen al aplicarles el filtro. ¿que puede estar sucediendo? Gracias desde ya por cualquier ayuda.

En principio el Explorer 5.5 soporta ese filtro… no hemos probado el sistema este con el 5.5, quizás debíamos haber puesto la versión de explorer en el título.

La verdad… sigo insistiendo en que lo mejor es no usar estas técnicas, incluso me estoy arrepintiendo de haber publicado este artículo.

Este truco es para ie para versiones 5.5 a 6 en versiones posteriores no lo soporta y no encontré ninguna solución en la 7 ya no hay problema.

Fecha del post: 3 de junio 2005. Insisto, mejor no usar eso.

Hola compañeros,

yo utilizo para las trasparencias la función correctPNG, y me funciona perfectamente menos para las imagenes de los INPUT. ¿Alguien me puede decir como lo hago para que también se vean transparentes estas imagenes?

*{position:relative;}
#container_x {
width: 157px;
height: 28px;
padding-top: 8px;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src=’images/background.png’,sizingMethod=’fit’);
/*para todos los elementos que tengan el filter*/
position:static;
}
—-

el correctPNG es muy malo, hace lento al DOM, y no sirve para backgrounds.

Saludos!

Yo me he topado con tremendo problema y no se como solucionarlo. El hecho es que entre las pre-condiciones que se deben cumplir para que todo sirva está que las capas no pueden estar posicionadas absolutamente pero en la página que estoy desarrollando necesito posicionarlas de esa forma pues de lo contrario el diseño no sale. Alguna sugerencia de como lograr entonces las transparencias? EL problema es que tengo deshabilitado todos los elementos del formulario (INPUT, SUBMIT)

Salu2 y esperando respuestas ;(