Ocultar la declaración xml a Internet Explorer

Para que nuestros documentos web sean XHTML del bueno, deberían tener la declaración <?xml?> al comienzo del documento. Ya nos comentaba Zeldman en Designing with Web Standards que esta característica nos iba a dar dolores de cabeza en algunos navegadores.

Por todos es conocido que Internet Explorer (6 y anteriores) no soporta XHTML en absoluto y que en el momento en que encuentra algo diferente a la declaración de tipo de documento (DOCTYPE) entra en modo quirks, es decir, cuando encuentra la declaración <?xml?> en la primera línea del documento suceden cosas raras.

Haciendo uso de los famosos comentarios condicionales de Internet Explorer (IE) vamos permitir que aparezca la declaración <?xml?> en nuestros documentos XHTML en aquellos navegadores que soportan este tipo de ficheros.

Problemas conocidos

Por ejemplo, queremos tener todas las páginas de nuestro sitio centradas, con cierto espacio por los lados. Ya sabemos que con Firefox (FF) bastaría con aplicar al bloque contenedor la siguiente declaración en la hoja de estilo CSS:

	#contenedor {
	   margin: 0 auto;
	   width: 65%;
	}

Sin embargo en nuestro amigo IE6 deberíamos añadirle algo como esto:

	body {
	   text-align: center;
	}

Todo esto se debe a lo que comentabamos anteriormente, IE entra en modo quirks y empieza a dar problemas. Sin embargo, si a IE le proporcionamos una declaración de tipo de documento correcta actuará igual que otros navegadores estándar (al menos en su mayor parte). Hay que tener en cuenta que para IE la declaración de tipo de documento correcta incluye: el identificador público y de sistema adecuados además de no tener nada antes que esta declaración.

¡Aquí es donde la matan!. La declaración <?xml?> siempre debe aparecer en la primera línea.

Buscando soluciones

¿Que podemos hacer?. Está claro que hay otros navegadores que aceptan este tipo de declaración y no todo el mundo tiene acceso a lenguajes del lado del servidor para identificar cuando se trata de uno u otro navegador para enviarle un tipo u otro de cabecera.

La solución nos la ofrece el mismo IE, los famosos comentarios condicionales (muy bien explicados en Diseñorama).

La cosa es sencilla, cuando se trate de IE le indicamos que no lea la línea de comentarios y cuando sea otro los tratará como comentarios. Ahí va el código del delito:

<!--[if !IE]><-->
	<?xml version="1.0" encoding="UTF-8"?>
<!--><![endif]-->

Por cierto, antes de que nadie venga pidiendo la silla eléctrica para el autor del artículo, se recomienda tomar todas las precauciones posibles. La primera de ellas, y casi la única, es fácil: leer.

Por último, recordar que los comentarios condicionales no funcionarán en la versión de IE para Mac.

Esta entrada fue publicada en (X)HTML. Guarda el enlace permanente.

Una respuesta a Ocultar la declaración xml a Internet Explorer

  1. Pingback: meneame.net

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Fatal error: Cannot redeclare class sk2_blacklist_plugin in /home/niquelao/niquelao.net/wp-content/plugins/SK2/sk2_plugins/sk2_blacklist_plugin.php on line 250