Explico un poco por si alguien no sabe lo que es un hack CSS. CSS es un presunto estándar web para describir los estilos que se quieren dar a un sitio web. Sobresimplificando, permite usar los tags estándar de HTML (o XHTML) y hacer que las cabeceras aparezcan en tal tipo de letra y tamaño, que la barra de menús aparezca en tal sitio y color… Y permite que cambiar el estilo de todo un sitio web sea algo relativamente fácil (desde luego, mucho más fácil que en el sitio estático habitual). Y debería permitir escribir un solo
El problema comienza con lo de presunto estándar. Porque los CSS no se interpretan igual en todos los navegadores. Las últimas versiones de Mozilla (y por tanto Firebird), Safari, Opera e incluso Internet Explorer (6.0) son bastante respetuosos con los estándares, y muestran las páginas prácticamente iguales. Pero a los (pocos) Netscape Navigator 4.* y los (muchísimos) Internet Explorer <6 (5.0, 5.5 principalmente) que corren por ahí se les atraganta bastante el asunto. (Nota: ojo, no tanto si nos restringimos a los estilos CSS más básicos. Los problemas comienzan, como siempre, con los diseños sofisticados, y no con todos.)
Resultado: uno de los atractivos de CSS, escribir una sola versión para todos los navegadores modernos, se va un poco bastante a hacer gárgaras. Las posibles vías de solución, como casi siempre, se pueden clasificar en dos. La primera es tirar de lo que se conoce como CSS Hacks: truquillos para pasarle diferentes juegos de instrucciones a las diferentes versiones de los diferentes navegadores. La segunda, diseñar para un navegador ideal (que no existe: ningún navegador actual respeta el estándar al 100%), y controlar que el aspecto de la página se degrade ‘de forma decorosa’ a medida que usamos navegadores más arcaicos o menos respetuosos.
Cuál es la alternativa buena depende de a quién se le pregunte. No faltará, tampoco, quien opine que diseñar a la antigua, con tablas y etiquetas font. En mi opinión, la opción b (diseñar para los estándares, pero controlando qué pasa en los navegadores reales) es preferible. Es posible un diseño atractivo en el 95% de navegadores, legible en todos, usable y sin [demasiados] dolores de cabeza.
Si alguien pretende investigar más sobre el tema, un buen punto de partida es una búsqueda en Google como esta (css hacks).
Me pregunto si este post tendrá algo que ver con el hecho de tener que ir dándole una imagen propia a este blog… ;)