Las principales ventajas del XHTML sobre el HTML son:
- Se pueden incorporar elementos de distintos espacios de nombres XML (como MathML y Scalable Vector Graphics).
- Un navegador no necesita implementar heurísticas para detectar qué quiso poner el autor, por lo que el parser puede ser mucho más sencillo.
- Como es XML se pueden utilizar fácilmente herramientas creadas para procesamiento de documentos XML genéricos (editores, XSLT, etc.).
DIFERENCIAS ENTRE HTML Y XHTML
La siguiente lista muestra algunas reglas de XHTML 1.0 que lo diferencian de HTML 4.01. Muchas de estas diferencias vienen con el cambio de ser una aplicación SGML a ser una aplicación del más estricto XML:
- Los elementos vacíos deben cerrarse siempre:
- Incorrecto:
<br>
- Correcto:
<br></br> o <br/> o <br />
Nota: Cualquiera de las tres formas es válida en XHTML. Para compatibilidad según el "Apéndice C" debe usarse<br />
.
- Incorrecto:
- Los elementos no vacíos también deben cerrarse siempre:
- Incorrecto:
<p>Primer párrafo<p>Segundo párrafo
- Correcto:
<p>Primer párrafo</p><p>Segundo párrafo</p>
- Incorrecto:
- Los elementos anidados deben tener un correcto orden de apertura/cierre (el que se abre último, debe cerrarse primero).
- Incorrecto:
<em><strong>Texto</em></strong>
- Correcto:
<em><strong>Texto</strong></em>
- Incorrecto:
- Los valores de los atributos deben siempre ir encerrados entre comillas (simples o dobles).
- Incorrecto:
<td rowspan=3>
- Correcto:
<td rowspan="3">
- Correcto:
<td rowspan='3'>
- Incorrecto:
- Los nombres de elementos y atributos deben ir en minúsculas.
- Incorrecto:
<A HREF="http://www.domname.com">Domname</A>
- Correcto:
<a href="http://www.domname.com">Domname</a>
- Incorrecto:
- No está permitida la minimización de atributos (se usa el nombre del atributo como valor).
- Incorrecto:
<textarea readonly>Solo-lectura</textarea>
- Correcto:
<textarea readonly="readonly">Solo-lectura</textarea>
- Incorrecto:
- Los atributos desaprobados en HTML 4.01 no forman parte de XHTML.
- Incorrecto:
<font color="#0000FF">Blue text</font>
- Correcto:
<span style="color: #0000FF;">Blue text</span>
- Incorrecto: