sinprogramar.blogspot.com

18/6/09

Transparencias con CSS compatibles con todos los navegadores

Hace tiempo que existe la opción de variar la opacidad de los elementos mediante CSS para crear transparencias, pero esta propiedad se aplica de distinta forma según el navegador y su versión.

Aquí resumo como utilizar las transparencias en todos los navegadores:

-moz-opacity: 0.5; /*solo Firefox*/
opacity:.50; /*Versiones actuales de Firefox, Chrome, Opera y Safari*/
filter: Alpha(Opacity=50); /*Explorer 6, 7*/
-ms-filter:'alpha (opacity=50)'; /*Explorer 8*/
-khtml-opacity: 0.5; /*solo Safari*/

Este ejemplo crea una transparencia del 50%. Cuanto más alto es el valor menos transparente será. El valor va de 0 a 1 para opacity , moz-opacity y khtml-opacity, y de 0 a 100 en Alpha(opacity).

Los navegadores actuales se han puesto todos de acuerdo para funcionar con "opacity:.50" excepto Internet Explorer. Para asegurarte que funcione en todos los navegadores lo mejor es utilizar todas los hacks aunque puede que no pase las validaciones.

Un detalle:
En Internet Explorer si se aplica a un div hay definir la altura y anchura para que funcione.

El ejemplo en funcionamiento:


Soy transparente


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus lobortis magna nec nisl mattis non scelerisque lorem interdum. Proin ac commodo libero. Fusce ligula nisl, iaculis sed malesuada a, bibendum at augue. In feugiat ante ultrices nisi cursus viverra. Vestibulum eget ullamcorper ligula. Phasellus id est sed enim adipiscing luctus. Fusce convallis, enim at convallis iaculis, lacus ligula sollicitudin orci, quis suscipit magna massa eget lacus. Duis ullamcorper ullamcorper arcu, at fringilla risus interdum a. Nulla facilisi. Nunc porta rutrum tincidunt. Sed tempor malesuada iaculis.

2 comentarios:

  1. Hola,

    he probado esta página en IE 8 y la transparencia no funciona.

    He mirado que tienes definido el DOCTYPE en estricto y he leido que el IE8 no acepta el "opacity" en este modo.

    ¿Sabes si hay alguna solución para este caso, que no sea cambiar el doctype? He estado buscando y no encuentro nada.

    ResponderEliminar
  2. Tienes razón. La verdad es que no lo había probado en Explorer 8.

    Para mostrar la opacidad en Explorer 8 puedes utilizar este filtro:
    -ms-filter:'alpha (opacity=50)';

    También lo he añadido en el post

    ResponderEliminar

Nota: solo los miembros de este blog pueden publicar comentarios.


Creative Commons License