¿Cuáles son todas las válidos auto-elementos de cierre en XHTML (como el implementado por los principales navegadores)?

StackOverflow https://stackoverflow.com/questions/97522

Pregunta

¿Cuáles son todas las válidos auto-elementos de cierre (por ejemplo,<br />) en XHTML (como el implementado por los principales navegadores)?

Sé que XHTML técnicamente permite a cualquier elemento a ser auto-cerrado, pero estoy buscando una lista de los elementos soportados por todos los principales navegadores.Ver http://dusan.fora.si/blog/self-closing-tags para algunos ejemplos de los problemas causados por la auto-elementos de cierre tales como <div />.

¿Fue útil?

Solución

Cada navegador que soporta XHTML (Firefox, Opera, Safari, IE9) apoya la auto-cierre de sintaxis en cada elemento.

<div/>, <script/>, <br></br> todo debería funcionar bien.Si no, entonces usted tiene HTML con inadecuadamente añadido XHTML DOCTYPE.

DOCTYPE no cambiar la forma de documento es interpretado. Sólo tipo MIME ¿.

W3C decisión acerca de ignorar DOCTYPE:

El HTML WG ha hablado de este tema:la intención era permitir viejo (Únicamente en HTML) de los navegadores para aceptar documentos XHTML 1.0 siguiendo el directrices, y servir como texto/html.Por lo tanto, los documentos que sirvieron como texto/html deben ser tratados como HTML y no como XHTML.

Es un error común, porque el Validador de W3C en gran medida ignora que la regla, pero los navegadores siguen religiosamente.Leer La comprensión de HTML, XML y XHTML de WebKit blog:

De hecho, la gran mayoría de los supuestamente documentos XHTML en el internet sirve como text/html.Lo que significa que no son XHTML, pero en realidad no válido código HTML que para conseguir el control de errores de los analizadores HTML.Todos aquellos "Valid XHTML 1.0!" enlaces en la web, en realidad están diciendo "no Válido HTML 4.01!".


Para probar si tiene real XHTML o HTML no válido con XHTML del DOCTYPE, poner esto en el documento:

<span style="color:green"><span style="color:red"/> 
 If it's red, it's HTML. Green is XHTML.
</span>

Es valida, y en el real XHTML funciona perfectamente (ver: 1 vs 2).Si usted no puede creer lo que sus ojos (o no saben cómo configurar los tipos MIME), abra la página a través de XHTML proxy.

Otra forma de comprobarlo es ver código fuente de Firefox.Se pondrán de relieve las barras en rojo cuando no son válidas.

En HTML5/XHTML5 esto no ha cambiado, y la distinción es aún más claro, porque ni siquiera han adicionales DOCTYPE. Content-Type es el rey.


Para el registro, la especificación XHTML permite a cualquier elemento de auto-cierre, haciendo una XHTML Aplicación de XML:[énfasis mío]

Vacío-las etiquetas de elemento puede ser utilizado para cualquier elemento que no tiene contenido, o si no se declara con la palabra clave VACÍO.

También se explicita en el Especificación de XHTML:

Los elementos vacíos deben ya sea tener una etiqueta de cierre o la etiqueta de inicio debe terminar con />.Por ejemplo, <br/> o <hr></hr>

Otros consejos

Uno de los elementos que ser muy cuidadoso con este tema es el <script> elemento.Si usted tiene una fuente externa de archivo, VA a causar problemas cuando el auto cerca de ella.Inténtelo:

<!-- this will not consistently work in all browsers! -->
<script type="text/javascript" src="external.js" />

Esto funciona en Firefox, pero se rompe en IE6, al menos.Sé, porque me encontré con esto, cuando celosamente auto de cierre de cada elemento que vi ;-)

La auto-cierre sintaxis funciona en todos los elementos en application/xhtml+xml.No es compatible en cualquier elemento de texto/html, pero los elementos que están "vacíos" en HTML4 o "vacío" en HTML5 no tome un extremo de la etiqueta de todos modos, así que si pones una barra en los que parece como si el auto de cierre de la sintaxis eran compatibles.

A partir de la W3 Schools sitio de referencia:

<area />
<base />
<basefont />
<br />
<hr />
<input />
<img />
<link />
<meta />

Mejor pregunta sería:lo de las etiquetas puede ser auto-cerrado, incluso en el modo HTML, sin afectar el código?Respuesta:sólo aquellos que han vacía de contenido (son nulas).De acuerdo a HTML especificaciones los siguientes elementos son nulos:

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

Versión anterior de la especificación también se enumeran command.Además, según diversas fuentes el siguiente obsoletos o no-estándar de etiquetas son nulas:

basefont, bgsound, frame, isindex

Espero que esto ayude a alguien:

<base />
<basefont />
<frame />
<link />
<meta />

<area />
<br />
<col />
<hr />
<img />
<input />
<param />

¿Qué acerca de <meta> y <link>?Porqué no están en esa lista?

Norma general, no se auto-cierre cualquier elemento que tiene la intención de tener contenido, porque definitivamente va a causar problemas con el navegador, tarde o temprano.

Los que son naturalmente de auto-cierre, como <br> y <img>, debería ser obvio.Los que no ...simplemente no auto-cerca de ellos!

La última vez que revisé, los siguientes fueron el vacío/vacío los elementos enumerados en HTML5.

Válido para los autores:área de la base, br, col, comando, incrustar, eventsource, hr, img, input, enlace, meta, param, fuente

No válido para los autores:basefont, bgsound, marco, espaciador, wbr

Además de los pocos que son nuevos en HTML5, que debería darle una idea de los que podrían ser compatibles cuando XHTML como text/html.(Prueba de ellos mediante el examen de la DOM producido.)

Como XHTML servido como application/xhtml+xml (que hace XML), XML aplican las reglas y cualquier elemento puede estar vacía (aunque el DTD XHTML no puede expresar esto).

Usted debe tener una mirada de la Dtd xHTML, todos están enumerados.Aquí es una revisión rápida de todas las principales:

<br />
<hr />
<img />
<input />

Se llaman "vacío" de los elementos en HTML 5.Están listadas en la oficial W3 spec.

Un vacío elemento es un elemento cuyo contenido modelo nunca, le permite tener el contenido está bajo ninguna circunstancia.

A partir de abril de 2013, son:

área de la base, br, col, comando, incrustar, hr, img, input, keygen, enlace, meta, param, la fuente, la pista, wbr

A partir de diciembre de 2018 (HTML 5.2), que son:

área de la base, br, col, incrustar, hr, img, input, enlace, meta, param, la fuente, la pista, wbr

Otro auto de cierre de la etiqueta problema para IE es el elemento título.Cuando IE (solo probado en IE7) ve esto, le presenta al usuario una página en blanco.Sin embargo, usted "ver código fuente" y todo está ahí.

<title/>

Originalmente me vio esto cuando mi XSLT generado el auto de la etiqueta de cierre.

No voy a tratar de overelaborate en esto, especialmente desde la mayoría de las páginas que escribo son generados o la etiqueta no tiene contenido.Los dos únicos que nunca me ha dado problemas a la hora de hacer auto-cierre son:

<title/>

Para esto, simplemente he recurrido siempre dándole un aparte de la etiqueta de cierre, ya que una vez allí, en el <head></head> que en realidad no hacen su código de cualquier messier a trabajar con todos modos.

<script/>

Esta es la más grande que yo, muy recientemente, surgieron problemas con.Durante años yo siempre había utilizado la auto-cierre <script/> etiquetas cuando el guión viene de una fuente externa.Pero yo hace muy poco comenzó a recibir mensajes de error de JavaScript sobre un null forma.Después de varios días de investigación, encontré que el problema era (supuestamente) que el navegador nunca fue llegar a la <form> etiqueta porque no se dio cuenta de esto fue el final de la <script/> de la etiqueta.Así que cuando me lo hizo en independiente <script></script> etiquetas de todo lo trabajado.¿Por qué en las distintas páginas que hice en el mismo navegador, no sé, pero fue un gran alivio para encontrar la solución!

<hr /> es otro

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top