2010-05-12 9 views

Respuesta

37

Si esto es válido depende de su doctype, básicamente si está usando XHTML o HTML.

Al usar XHTML, todos los navegadores principales admitirán etiquetas de cierre automático como el ejemplo que proporcionó. Tome el siguiente ejemplo, esto es válido porque estoy especificando que la página está usando XHTML (en otras palabras, HTML que es XML válido).

Actualización: Sobre la base de los muy buenos comentarios a continuación, los navegadores sólo se interpretan todas las etiquetas de cierre automático correctamente si el tipo MIME es text/xml o application/xhtml+xml, ver here para los detalles. Para las páginas servidas como text/html (la gran mayoría), vea here aquí para las etiquetas que pueden cerrarse automáticamente.

En este ejemplo se va a validar:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
</head> 
<body> 
    <h2>Will test page</h2> 
    <p>some stuff <span class="drop" /></p> 
</body> 
</html> 

Sin embargo, este ejemplo no es válido, porque he cambiado el tipo de documento a HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
</head> 
<body> 
    <h2>Will test page</h2> 
    <p>some stuff <span class="drop" /></p> 
</body> 
</html> 

Algunas referencias útiles:

+0

Una buena manera de señalar que el HTML (que proviene de SGML) no es XML. Simplemente se parece a XML y puedes aplicar trucos para fingir que es como XML. – Anonymoose

+3

"Al especificar un doctype de XHTML, todos los principales navegadores admitirán etiquetas de cierre automático como el ejemplo que proporcionó". Completamente mal. Los validadores lo aceptarán, pero los navegadores no lo aceptarán. Los navegadores requieren que la página se sirva con un tipo de contenido XML, antes de que admitan etiquetas de cierre automático como esta. – Alohci

+2

Como dijo @Alochi, el HTML puede ser válido (lo cual es lindo), pero ¿de qué sirve si no es compatible con navegadores? Mira este ejemplo: http://jsbin.com/ujayu3/2. Según tu respuesta, nada debería ser rojo. De hecho, el navegador se comporta como si el tramo no estuviera cerrado; – Kobi

12

No, esto no es compatible con todos los navegadores.
Aquí hay un ejemplo con divs: http://jsbin.com/upovu

+1

+1 por ayudarme a entender esto mejor :) – wsanville

+2

+1 Este es el verdadero punto aquí: incluso si la especificación XHTML permite técnicamente etiquetas de cierre automático, si los navegadores no lo admiten, no importa. :( – devios1

-1

No http://www.w3schools.com/tags/tag_span.asp

La etiqueta span es útil para enganchar css en un segmento particular de texto o parte de un documento. No puedo pensar en ninguna razón útil/sensata de que una etiqueta span se cierre automáticamente.

+3

Por ejemplo, un marcador de posición en el que más tarde insertar contenido usando JavaScript. (Sí, uno podría tomar su padre e ir insertando el lapso, pero eso podría diferir de una página a otra o ser condicional, etc ...) – Konerak

0

Dado que la etiqueta no proporciona ningún cambio visual por sí misma, no tiene sentido para mí tener un bloque de intervalo de cierre automático sin contenido. La etiqueta proporciona una forma de agregar un gancho a una parte de un texto o una parte de un documento. Cuando el texto está enganchado en un elemento span, puede agregar estilos al contenido o manipular el contenido con, por ejemplo, JavaScript.

Sin embargo, para responder a su pregunta, sí, el bloque de código html publicado es válido.

+1

Puede ser, pero los navegadores no lo hacen bien. En cuanto a "tener sentido", siempre puedes pensar en algo: puede mostrar un ícono, flotar alrededor, ser arrastrable, resaltar (pensar semitransparente) o servir como marcador para JavaScript. Puedo seguir y seguir :) – Kobi

0

Hasta donde yo sé, esto solo se puede usar cuando configura Doctype en Xhtml.

-1

No, no lo es. Puede cerrar así sólo si no se puede insertar en la etiqueta algo Por ejemplo: usted no puede insertar la etiqueta o el texto dentro de la etiqueta img , para que pueda cerrar la etiqueta como esta

1

Prueba de la siguiente fragmento en validator.w3.org:

<p><span class="drop" /></p> 

Validación como HTML 4.01 Strict

# end tag for "SPAN" omitted, but its declaration does not permit this 

Validación como XHTML 1.0 Strict

# The uploaded document was successfully checked as XHTML 1.0 Strict. 
Cuestiones relacionadas