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 />.

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>

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>

Los valores de los atributos deben siempre ir encerrados entre comillas (simples o dobles).
o Incorrecto: <td rowspan=3>
o Correcto: <td rowspan="3">
o Correcto: <td rowspan='3'>

 

Los nombres de elementos y atributos deben ir en minúsculas.
o Incorrecto: <A HREF="http://www.domname.com">Domname</A>
o Correcto: <a href="http://www.domname.com">Domname</a>

 

No está permitida la minimización de atributos (se usa el nombre del atributo como valor).
o Incorrecto: <textarea readonly>Solo-lectura</textarea>
o Correcto: <textarea readonly="readonly">Solo-lectura</textarea>

 

Los atributos desaprobados en HTML 4.01 no forman parte de XHTML.
o Incorrecto: <font color="#0000FF">Blue text</font>
o Correcto: <span style="color: #0000FF;">Blue text</span>

Reglas para DTDs estrictos

El texto no debe ser insertado directamente en el cuerpo (dentro de la etiqueta "body").
o Incorrecto: <body>Texto plano</body>
o Correcto: <body><span>Texto plano</span></body>

No se deben insertar elementos de bloque dentro de elementos de línea.
o Incorrecto: <em><h2>Título</h2></em>
o Correcto: <h2><em>Título</em></h2>

 

Fuente: Wikipedia

 

.