Condiciones de Santiago

Acerca de isPanic | Sobre el autor de este sitio

isPanicWeb DeveloperSantiago, ChileisPanic es la bitácora personal de Roberto Rivera. Para más información sobre el sitio y su autor, visita el colofón, o si prefieres, puedes contactarlo a través de este formulario.

Suscríbete a isPanic

Info | solo para orientarte un poco

Tags para este artículo

IE7 y comentarios condicionales

~ 05-03-07 ~ Editar

El 18 de octubre de 2006, IE 7 fue oficialmente lanzado, prometiendo un sinnúmero de mejoras, entre ellas, mejor soporte para estándares.
Ya era hora.
Francamente, hace rato que necesitaba una actualización, sobre todo teniendo en cuenta que aún es el navegador más usado, factor que claramente hay que tener en cuenta a la hora de diseñar un sitio: o lidias con sus históricas deficiencias, o pierdes una cantidad generosa de visitas.

Pero las cosas han cambiado, y el otrora indolente navegador se ha vuelto un tipo más amable y tolerante, casi simpático.

El único problema es que este mejor soporte hizo que los viejos hacks que hacían posible el milagro que IE desplegara un sitio con mediana decencia, ya no sirvan, porque se basaban en errores que fueron corregidos en la versión 7. De hecho, desde el año 2005 que Microsoft llamaba a prescindir de los hacks (rarísimo viniendo de ellos) para no tener problemas de compatibilidad con IE 7.
Desde entonces, la recomendación ha sido dejar de usar hacks en tus archivos CSS, y ocupar los olvidados comentarios condicionales para discriminar con precisión las distintas versiones de IE y proporcionarles las declaraciones que necesiten.

Y ahora que noto una creciente cantidad de visitantes que usan el mesiánico navegador, me parece pertinente tocar el tema.

Cómo funciona

La idea es simple. La estructura es como sigue:

Texto plano

HTML:
  1. <!--[if IE 6]>
  2. Declaraciones para IE 6
  3. <![endif]-->

Para todos los navegadores (exceptuando IE win desde la versión 5 en adelante) esto no es más que un comentario. Todo lo que va dentro de <!-- --> no es ejecutado y el navegador lo salta, mientras que para la familia windows de IE, al leer el comentario y toparse con el primer if ejecuta su contenido.

Lamentablemente, como se tratan de comentarios condicionales, solo pueden ser incluídos en archivos HTML y no en un archivo CSS, que hubiese sido, en mi humilde opinión, más conveniente. Nada es perfecto.

De esta forma podemos servir CSS para una versión específica, por ejemplo, si queremos algo solo para IE 5.5, sería:

Texto plano

HTML:
  1. <!--[if IE 5.5]>
  2. Declaraciones para IE 5.5
  3. <![endif]-->

Y ojo, que también podemos ocuparlos para ejecutar javascript:

Texto plano

HTML:
  1. <!--[if IE 6]>
  2. <script type="text/javascript" src="javascriptIE6.js">
  3. </script>
  4. <![endif]-->

Existen variaciones para apuntar a un grupo de versiones:

Texto plano

HTML:
  1. <!--[if gte IE 6]>
  2. IE iguales o superiores a la versión 6
  3. <![endif]-->
  4. <!--[if lt IE 6]>
  5. IE menores a la versión 6
  6. <![endif]-->
  7. <!--[if lte IE 6]>
  8. IE menores o iguales a la versión 6
  9. <![endif]-->
  10. <!--[if gt IE 6]>
  11. IE superiores a la versión 6
  12. <![endif]-->
  13. <!--[if !IE]>
  14. Este navegador NO ES IE
  15. <![endif]-->

Algunos detalles:

¿Alguna alternativa?

Claro, pero son menos fiables o más complicadas.
La verdad es que habrá que acostumbrarse. Por la manera en que habitualmente trabajo (y a muchos les pasará lo mismo) hubiese preferido alguna solución que pudiera aplicarse al CSS mismo, y no algo en el documento HTML .
De todas formas, era cuestión de tiempo tener que lidiar con semejante fastidio: tarde o temprano Microsoft mejoraría IE .
Y convengamos que es algo más que grato que el navegador más usado en el mundo mejore.
Lo único que espero es que no tenga que esperar otros 6 años para una actualización.

Actualización

Gracias al comentario de Francisca, me di cuenta de que faltaba algo bien relevante. Hay ciertos hacks que son considerados potencialmente peligrosos y que deberían ser pasados a otra hoja de estilos usando los comentarios condicionales:

del.icio.us     meneame

Transantiago | Gran Paraíso en el horizonte

Comentarios

Francisca, opinó el 16 03 2007 e :

Gracias por los consejos.
Habra que acostumbrarse. Todos los hacks hay que pasarlos a otra css?

Salu2

Roberto Rivera, opinó el 16 03 2007 e :

Hola Francisca. Bien buena tu pregunta, me faltó agregar ese pequeño detalle =}
La idea es empezar a hacer hojas de estilo apuntando a cada navegador, pero efectivamente hay hacks considerados peligrosos.

Actualicé el post con esa info. Gracias por tu comentario.

Kabuki, opinó el 30 11 2007 e :

¡Que tal Roberto!. Te comento que para mi la solución definitiva es algo que va a llevar tiempo en ser implementada, pero que a la larga nos va a dejar a todo más que contentos y esa solución es Firefox. En realidad, no es solo Firefox sino todos los navegadores que respeten los estandares. Todos tenemos que dar nuestro pequeño aporte difundiendo este navegador así de una vez por todas nos olvidamos de infame IE en cualquiera de sus sabores.

Y de paso te recomiendo Flock que es de la familia Mozilla. Muy bueno. Y, además, le podes instalar la Web Developer Tool.

Eso es todo. Fue un gusto.

Atte,
Kabuki.

Chak, opinó el 10 02 2009 e :

exelente rata, solo falta jquery y de regreso a la banca


Instrucciones | sólo en caso de necesitarla

  • Si comentas por primera vez, tu comentario estará en moderación. Sé que es molesto, pero hay que combatir el spam, ¿o no?
  • Tu correo electrónico es necesario, pero no te preocupes, no lo compartiré con ninguna empresa y/o agrupación terrorista (además, no se muestra)
  • Algunas etiquetas permitidas:
    <b></b>; <em></em>;
    <a href="http://url.com"></a>
  • Agradecería que me contactaras por cualquier problema que encuentres mientras comentes o navegues en este sitio

Siempre hay algo que decir | por eso, escríbelo

Hola . Salir

(Recibirás un mail notificándote cuando alguien más comente en este post)