Transparencias a prueba de browsers

Hasta no hace poco, para lograr transparencias en imágenes para web, el método era exclusivamente hacerlo con un SWF. Con la masificación del PNG, esto se ha hecho más fácil y el resultado es bastante satisfactorio (no como esos horrendos bordes dentados de los eternos GIF), pero lo complementaremos bastante con el uso de CSS.

Propiedades del browser

Cada browser tiene su propio método de aplicar opacidad a las imágenes. CSS ha implementado 3 diferentes propiedades que afectan la transparencia de un elemento:

  • opacity: con valores decimales entre 0 (invisible) y 1 (sólido). (CSS3)
  • moz-opacity: también con valores decimales entre 0 y 1. (Firefox)
  • filter: es una propiedad de IE (5.5+) el cual trae varios efectos (degradaciones, desenfocado, sombras, etc). Para lograr la transparencia se ocupa el filtro alpha, con valores entre 0 y 100.

Al declarar las 3 propiedades juntas mediante CSS y con el mismo valor de opacidad, podrás tener una transparencia a prueba de browsers:

#elementotransparente {
     opacity: 0.4;
     -moz-opacity: 0.4;
     filter: alpha(opacity=40);
}

Y utilizando comentario condicional para IE (recomendable):

<style type=“text/css”>
     #elementotransparente { opacity: 0.4; -moz-opacity: 0.4; }
</style>
<!—[if IE]>
     <style type=“text/css”> #elementotransparente { filter: alpha(opacity=40); }
     </style>
<![endif]—>

Ver ejemplo

La transparencia la puedes aplicar en bloques (un div por ejemplo) o a elementos individuales (imágenes, textos). Importante es considerar el nivel de lectura, si quieres darle transparencia a bloques de texto, por ejemplo. Por último, ninguno de estas 3 propiedades validarán por la W3C. Depende de tí si es importante que tu hoja de estilos valide.

Probado en: Safari, IE6, IE7, Opera9, FF 1.5.3+

Links:

Sobre el Autor: Jorge Epuñan

Soy quien escribe en este sitio: diseñador gráfico de profesión, desarrollador web por preferencia y amante de la interacción humano-computador. Cuando no pienso en web, salgo a trotar por mis barrios en Santiago, Chile o me junto con amigos a un bar a conversar sobre nuevas tendencias y tecnologías. Twitter profesional y personal, además del Contacto.

  1. fearlex

    Muy interesantem aunque me gustaria saber si la propiedad opacity de CSS3 validará en la W3C. Podra esta propiedad sustituir a Filter de IE y a -moz- de mozilla, o es solo otra opcion mas y tenemos que seguir usando los tres si queremos opacidad ?

  2. CSSLab Admin

    si, opacity en css3 porq es de la w3c. si reemplazará a las otras 2? depende de los browsers…

  3. Jonathan

    Hola me parecio interesante tu comentario, bueno pero mencionas que se usa swf para las transparencias, sin embargo estoy probando la transparencia de un swf en FireFoz pero bajo entorno Linux y no funciona, eso es por que el wmode no funciona bajo Linux? estoy en la version 2.0.0.2 de Firefox, o me falta instalar algo, me agradaria q me contestaras lo que sabes tu al respecto.

    este es el codigo q cuso

    Creo q todo esta bien !! ?? Bueno gracias.

  4. CSSLab Admin

    Jonathan, lamentablemente por aqui no puedes copiar codigo, sino está formatado en HTML. sino, trata de ponerlo en los foros, a ver si puedo investigar ma sobre eso. Saludos.

  5. GARY

    aaa pos alguien podria desirme donde se coloca el testo para ke se valide el codigo ????

  6. CSSLab Admin

    Gary, no hay solucion directa. podrias inyectar el codigo de transpoarencia q no valide mediante JS por ejemplo, o hacerlo directamente via algun framework de JS. Suerte.

  7. GARY

    bien muchas gracias con esto vere ke puedo hacer

  8. jose

    Se puede logra que el contenido no quede transparente… solo el fondo???

    Gracias

  9. Jorge Epuñan

    jose, para eso lee el articulo sobre la propiedad RGBa. Saludos.

  1. [...] Nada de eso nos sirve sin un correcto uso de CSS. Para la base semi-transparente le damos opacidad a ...
    » Ventana modal sólo con CSS | CSSLab
1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|101|102|103|104|105|106|107|108|109|110|111|112|113|114|115|116|117|118|119|120|121|122|123|124|125|126|127|128|129|130|131|132|133|134|135|136|137|138|139|140|141|142|143|144|145|146|147|148|149|150|151|152|153|154|155|156|157|158|159|160|161|162|163|164|165|166|167|168|169|170|171|172|173|174|175|176|177|178|179|180|181|182|183|184|185|186|187|188|189|190|191|192|193|194|195|196|197|198|199|200|201|202|203|204|205|206|207|208|209|210|211|212|213|214|215|216|217|218|219|220|221| viagrea onling viagra tablets name and cost levitra and dapoxetine youtube/viagra cialis extra generic viagra accepting american express buy generic viagra online with no prescription with mastercard generic levitra 20 mg levitra pro buy viagra online in ireland is it illegal to order viagra from outside the united states cheapest generic cialis buy cheap levitra overnight delivery cialis wears off airport security generic viagra generic finasteride viagra for sale using paypal ukAccutane Online Doxycycline online Buy Cheap Lexapro Online No Prescription Prednisone Online Buy Accutane No Prescription