Aunque se ha avanzado mucho en esto de la compatibilidad entre navegadores y aceptación de los estándars, lo cierto es que aún quedan algunos flecos molestos, que si bien no molestan demasiado, sí que son un poco peñazo cuando uno quiere hacer cosas que todo el mundo vea más o menos decentemente.
Uno de estos "pequeños detalles" es el del tamaño de las fuentes de letra. Casi cualquier manual o guía de usabilidad indicará que los tamaños deben indicarse en tamaño relativo, no fijo, para que la persona usuaria pueda cambiarlo si lo cree conveniente. Por ello, se recomienda especificar los tamaños en ems, en vez de en píxels, a lo que casi todos estamos acostumbrados.
Lo cierto es que prácticamente todos los navegadores permiten que el usuario escale una fuente aunque esté definida en píxels. Esto haría que usar píxels fuese más cómodo, ya que un tamaño especificado en píxels es prácticamente idéntico (píxel más, píxel menos) en todos los navegadores, mientras que un tamaño especificado en ems es mucho más pequeño en Explorer que en Mozilla, por ejemplo (lo cual explica que muchas páginas supuestamente accesibles aparecen al usuario poco avisado con un tamaño de letra ridículamente pequeño). Sin embargo, hay un pequeño detalle que nos impide usar píxels como unidad de medida: el Internet Explorer no escala los tamaños de fuente especificados en píxels. Si indicamos 10 píxels, ya podemos jugar con el menú
Ver-Tamaño de Texto, que van a seguir al mismo tamaño. Lo cual es una putada, hablando claro.
La solución tradicional ha sido (aparte de pasar de uno de los grupos de usuarios, o bien los de Explorer -la inmensa mayoría de los cuales nisiquiera sabe que en su navegador existe una opción para cambiar el tamaño de la fuente-, o bien los demás) usar dos hojas de estilo: una para el Explorer, y otra para el resto de los navegadores, y decidir cual usar por medio de javascript. Esto conlleva un par de problemas, principalmente que cada vez que aparecía una nueva versión había que revisar el script de marras en todas las páginas que lo usaban (en realidad, lo tradicional tradicional era usar una para el Netscape 4 y otra para el resto de los mortales, lo cual puede dar una idea del tema), y también que algún que otro usuario navega con javscript desactivado.
Pues bien, hay otra manera de resolver este problemilla: Internet Explorer incluye una funcionalidad poco conocida, llamada
comentarios condicionales, que permiten interpretar un fragmento de código tan sólo en ese navegador.... Mexplico:
Se pone algo tal que ansina
<!--[if IE]>
<p>Hola mundo</p>
<![endif]-->
y lo que hay entre las etiquetas de comentario se interpreta sólo si el navegador es Internet Explorer (puede también indicarse la versión, y otras pijadillas). Usando esto, podemos crear una hoja de estilos para todo el mundo, indicando los tamaños en píxels, y otra hoja definiendo tan sólo los tamaños en ems, tal que:
<link rel="stylesheet" href="estilospatodos.css" />
<!--[if IE]>
<link rel="stylesheet" href="estilospaexplorer.css" />
<![endif]-->
Lo cual queda bastante más elegante que una función en javascript. Obviamente, al ser algo tan específico, igual no está en la próxima versión de Explorer, pero bueno, igual para ese entonces no hace falta usar estos trucos...
Obviamente, este método puede aplicarse también a otros "detalles casi sin importancia" del Internet Explorer, como su definición 'standard-proof' del tamaño de las cajas (boxes) en lo que respecta a width, margin, paddings y demás.