Bypass main content
Código XHTML (pagina 3)
Esta lista enumera las diferencias entre XHTML 1.0 Strict y XHTML 1.1.
- El atributo "lang" ha sido completamente reemplazado por el atributo "xml:lang".
- Valid:
<span xml:lang="es">Texto</span>
- Invalid:
<span lang="es" xml:lang="es">Texto</span>
- El atributo "name" ha sido completamente reemplazado por el atributo "id" para los elementos "a" y "map".
- Valid:
<a id="marcador1">Marcador</a>
- Invalid:
<a name="marcador1">Marcador</a>
- La colección de elementos "ruby" ha sido agregada. Ver más acerca de caracteres ruby.
Como puedes ver, XHTML 1.1 ya no es compatible con versiones anteriores debido a la imposibilidad de utilizar los atributos "name" y "lang". A menos que no precises utilizarlos, tu documento no será completamente compatible con HTML 4 y algunos agentes de usuario.
Aún cuando XHTML es compatible con su predecesor, algunas consideraciones deben tenerse en cuenta para hacerlo funcionar correctamente en algunos navegadores antigüos. A continuación se muestra una lista con los problemas de compatibilidad en XHTML 1.0 y sus respectivas soluciones.
- La declaración XML, así como el servir tus documentos como "application/xhtml+xml", puede provocar que algunos agentes de usuario lo identifiquen como desconocido en lugar de como HTML. Esto puede resultar en una representación errónea de tu documento. Para solucionar este problema deberías evitar el uso de la declaración XML y servir tus documentos como "text/html" a través de una declaración en el encabezado.
- Compatible:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- No compatible: <?xml version="1.0" encoding="UTF-8"?>
- La forma abreviada de cerrar elementos vacíos debe esta separada del último atributo por un espacio. Los navegadores antigüos considerarán la barra como un atributo desconocido y simplemente lo ignorarán.
- Compatible:
<br />
- No compatible:
<br/>
- La forma no abreviada de cerrar elementos vacíos puede causar que algunos agentes de usuario produzcan resultados inesperados. Usa la forma abreviada en su lugar.
- Compatible:
<br />
- No compatible:
<br></br>
- Cualquier código de script u hoja de estilo que contenga caracteres como "&" ó "<" ó "]]>" ó "--" será procesado (como código XML) por un procesador XML, el cual también ignorará completamente el texto comentado (por ejemplo, "<!-- comentarios -->"). La mejor solución, dado que la sintaxis de los bloques CDATA puede ser irreconocible en navegadores antigüos, es declarar tanto scripts como código de hojas de estilos en archivos externos. Recuerda que para hacer referencia a estos archivos debes utilizar estas declaraciones en el encabezado de tu documento.
- Compatible:
<script type="text/javascript" src="comun.js"></script>
<link rel="stylesheet" type="text/css" href="predefinidos.css" />
- No compatible:
<style type="text/css">
<![CDATA[
p { color: blue; }
]]>
</style>
<script type="text/javascript">
<![CDATA[
var a = 1;
]]>
</style>
- Múltiples espacios en blanco o quiebres de líneas entre los valores de los atributos pueden causar problemas en muchos navegadores. Evita utilizarlos, especialmente porque son innecesarios y hacen al código menos legible.
- El atributo "xml:lang" fue introducido en XHTML y está pensado para reemplazar al atributo "lang". Como algunos navegadores pueden no reconocerlo, utiliza ambos (el atributo "xml:lang" toma precedencia). Nota que en documentos XHTML 1.1 el atributo "lang" es completamente inválido, de modo que estos documentos no pueden 100% compatibles con aquellos agentes de usuario que no reconocen al atributo "xml:lang".
- Compatible:
<a href="es.html" lang="es" xml:lang="es">
- No compatible:
<a href="es.html" xml:lang="es">
- En XML, las URIs que apuntan a marcadores en una página (por ejemplo, xhtml.html#compatibility) se refieren asu atributo "id" en lugar de referirse al atributo "name" (como en HTML 4). Entonces, para tener total compatibilidad (con HTML y XHTML), deberías especificar ambos atributos con el mismo valos. Nota que en XHTML 1.1 el atributo "name" ha sido eliminado para el elemento HTML a, así que no se podrá lograr una compatibilidad completa en este estándar.
- Compatible:
<a name="las-bases" id="las-bases">
- No compatible:
<a name="las-bases">
- En XML, los caracteres permitidos para componer atributos "name" e "id" son más que los permitidos en HTML 4. Para construir nombre e ids compatibles, usa únicamente: letras de la A a la Z (mayúsculas y minúsculas), números del 0 al 9, guinones medios "-", guiones bajos "_", dos puntos ":" y puntos ".". El valor debe siempre comenzar con una letra.
- Compatible:
<a name="las- bases" id="las-bases">
- No compatible:
<a name="0-las;bases" id="0-las;bases">
- El nombre de referencia de caracter ' (el apóstrofe) fue introducido en XML 1.0 y por lo tanto válido, pero para HTML 4 es irreconocible. Para lograr la compatibilidad con versiones anteriores usa la representación ' en su lugar.
- Compatible:
it's ok
- No compatible:
it's ok
siempre que quieras puedes revisar que tu documento XHTML (así como muchos otros documentos) para ver que tu arduo trabajo está 100% correcto. Puede hacer esto en servicio de validación del W3C, donde puedes elegir una validación por URL, por subida de archivo o por ingreso directo. cuando el resultado se muestre, la lista de errores y advertencias (si existen) te dirá qué y dónde corregir.