Todos los navegadores que admiten XHTML (Firefox, Opera, Safari, IE9 ) admiten sintaxis de cierre automático en cada elemento .
<div/>
, <script/>
, <br></br>
Todo debería funcionar bien. Si no lo hacen, entonces tiene HTML con XHTML DOCTYPE agregado de manera inapropiada.
DOCTYPE no cambia la forma en que se interpreta el documento. Solo el tipo MIME lo hace .
Decisión del W3C sobre ignorar DOCTYPE :
El HTML WG ha discutido este problema: la intención era permitir que los navegadores antiguos (solo HTML) acepten documentos XHTML 1.0 siguiendo las pautas y sirviéndolos como texto / html. Por lo tanto, los documentos servidos como texto / html deben tratarse como HTML y no como XHTML.
Es una trampa muy común, porque el Validador W3C ignora en gran medida esa regla, pero los navegadores la siguen religiosamente. Lea
Comprensión de HTML, XML y XHTML del blog de WebKit:
De hecho, la gran mayoría de los documentos supuestamente XHTML en Internet se sirven como text/html
. Lo que significa que no son XHTML en absoluto, sino HTML no válido que se está solucionando con el manejo de errores de los analizadores HTML. Todos esos "Valid XHTML 1.0!" los enlaces en la web realmente dicen "HTML no válido 4.01!".
Para probar si tiene XHTML real o HTML no válido con DOCTYPE de XHTML, coloque esto en su documento:
<span style="color:green"><span style="color:red"/>
If it's red, it's HTML. Green is XHTML.
</span>
Valida, y en XHTML real funciona perfectamente (ver: 1 vs 2 ). Si no puede creer lo que ve (o no sabe cómo configurar los tipos MIME), abra su página a través del proxy XHTML .
Otra forma de verificar es ver la fuente en Firefox. Destacará las barras en rojo cuando no sean válidas.
En HTML5 / XHTML5 esto no ha cambiado, y la distinción es aún más clara, porque ni siquiera tiene más DOCTYPE
. Content-Type
es el rey
Para el registro, la especificación XHTML permite que cualquier elemento se cierre automáticamente al hacer de XHTML una aplicación XML : [énfasis mío]
Las etiquetas de elementos vacíos se pueden usar para cualquier elemento que no tenga contenido , se declare o no usando la palabra clave VACÍO.
También se muestra explícitamente en la especificación XHTML :
Los elementos vacíos deben o bien tener una etiqueta de cierre o la etiqueta de inicio debe terminar con />
. Por ejemplo, <br/>
o<hr></hr>