utilizadas - sintaxis html5




¿Son válidas las etiquetas de cierre automático(no nulas) en HTML5? (4)

Básicamente, HTML5 se comporta como si la barra diagonal final no estuviera allí. No existe tal cosa como una etiqueta de cierre automático en la sintaxis HTML5.

  • Las etiquetas de cierre automático en elementos no vacíos como <p/> , <div/> no funcionarán en absoluto. La barra diagonal final se ignorará, y se tratarán como etiquetas de apertura. Esto puede conducir a problemas de anidación.

    Esto es cierto independientemente de si hay espacios en blanco delante de la barra: <p /> y <div /> tampoco funcionarán por el mismo motivo.

  • Las etiquetas de cierre automático en elementos vacíos como <br/> o <img src="" alt=""/> funcionarán, pero solo porque la barra diagonal final se ignora y, en este caso, resulta en el comportamiento correcto.

El resultado es que todo lo que funcionó en su antiguo "XHTML 1.0 servido como texto / html" continuará funcionando como lo hacía antes: tampoco se aceptaron barras diagonales en etiquetas no nulas mientras que la barra diagonal final en elementos nulos funcionó.

Una nota más: es posible representar un documento HTML5 como XML, y esto a veces se denomina "XHTML 5.0". En este caso, las reglas de XML se aplican y las etiquetas de cierre automático siempre se manejarán. Siempre debería ser servido con un tipo de mime XML.

Al validador W3C no le gustan las etiquetas de cierre automático (las que terminan con " /> ") en non-void elementos non-void . (Los elementos vacíos son aquellos que pueden no contener ningún contenido). ¿Siguen siendo válidos en HTML5?

Algunos ejemplos de elementos vacíos aceptados :

<br />
<img src="" />
<input type="text" name="username" />

Algunos ejemplos de elementos no nulos rechazados :

<div id="myDiv" />
<span id="mySpan" />
<textarea id="someTextMessage" />

Nota: el validador W3C en realidad acepta etiquetas de cierre automático nulas: el autor originalmente tuvo un problema debido a un simple error tipográfico ( \> lugar de /> ). Sin embargo, las etiquetas de cierre automático no son 100% válidas en HTML5 en general, y las respuestas se basan en el tema de las etiquetas de cierre automático en varios tipos de HTML.


Como señaló Nikita Skvortsov, una división de cierre automático no se validará. Esto se debe a que div es un elemento normal , no un elemento vacío . De acuerdo con la especificación HTML5 , las etiquetas que no pueden tener ningún contenido (conocidas como elementos nulos ) pueden cerrarse automáticamente *. Esto incluye las siguientes etiquetas:

area, base, br, col, embed, hr, img, input, 
keygen, link, meta, param, source, track, wbr

Sin embargo, la "/" es completamente opcional en las etiquetas anteriores, por lo que <img/> no es diferente de <img> , pero <img></img> no es válido.

* Nota: los elementos extraños también pueden ser de cierre automático, pero no creo que esté dentro del alcance de esta respuesta.


Las etiquetas de cierre automático son válidas en HTML5, pero no son necesarias.

<br> y <br /> están bien.


Tendría mucho cuidado con las etiquetas de cierre automático ya que este ejemplo demuestra:

var a = '<span/><span/>';
var d = document.createElement('div');
d.innerHTML = a
console.log(d.innerHTML) // "<span><span></span></span>"

Mi instinto habría sido <span></span><span></span> lugar





w3c-validation