viernes, 24 de junio de 2011

Vagabundia

Vagabundia


Condicionando las cosas para Internet Explorer

Posted: 23 Jun 2011 08:00 PM PDT

Usar comentarios condicionales para eludir incompatibilidades con distintas versiones de Internet Explorer no es lo ideal porque lo ideal es resolverlas pero, tampoco es un pecado y es la forma más simple agrupar etiquetas específicas que sólo serán aplicadas a ese navegador y, sin duda, es un método mucho más flexible y seguro que utilizar hacks estrafalarios que no siempre dan resultados.

Este método permite agregar etiquetas de cualquier tipo, ya sean reglas de estilo específicas, como scripts o cualquier otra y las condiciones pueden ser utilizada tanto en el head de una página como en el body e incluso, dentro de una entrada de un blog.

El formato standard es el siguiente:
<!--[if IE]>   ... acá ponemos las etiquetas que sólo se ejecutaran en Internet Explorer ... <![endif]-->
Una serie de variantes permiten establecer las versiones de IE donde se aplicarán:
<!--[if IE 7]>   ... sólo en IE version 7 ... <![endif]-->
Con lt se indica menor que y con lte menor o igual que:
<!--[if lt IE 8]>   ... versiones anteriores a la 8 ... <![endif]-->  <!--[if lte IE 8]>   ... IE8 o inferior ... <![endif]-->
Con gt se indica mayor que y con gte mayor o igual que:
<!--[if gt IE 8]>   ... versiones posteriores a la 8 ... <![endif]-->  <!--[if gte IE 8]>   ... IE8 o superior ... <![endif]-->
También pueden usarse condiciones negativas con el carácter ! que indica NOT:
<![if !IE 7]>   ... NO se está usando IE7 ... <![endif]>
Algunos preguntan si es posible usar estos condicionales para detectar el navegador y crear condicionales para otros. La respuestas es no pero, sin embargo, si es posible condicionar algo para que sólo se ejecute en navegadores que no sean Internet Explorer y hay una confusión respecto a esa sintaxis que debe ser escrita de este modo:
<![if !IE]>   ... esto sólo se ejecutará en navegadores que no sean Internet Explorer ... <![endif]>
En este ejemplo, si se está utilizando IE se verá una imagen y en caso contrario, se verá otra:



<!--[if IE]>   <img src="imagen_ IE_SI" /> <![endif]-->  <![if !IE]> <img src="imagen_ IE_NO" /> <![endif]>
Para Microsoft, a todo navegador que no sea Internet Explorer se lo denomina downlevel browser y ellos simplifican las cosas de este modo:
<!--[if true]>   ESTAS USANDO INTERNET EXPLORER <![endif]-->  <![if false]>   NO ESTAS USANDO INTERNET EXPLORER <![endif]>
Así que con el ejmplo anterior, el resultado será el mismo:


No hay comentarios:

Publicar un comentario

Correo Vaishnava

Archivo del blog