tl; dr
Algunos programas ampliamente utilizados, que generan html, solo generarán etiquetas de párrafo de apertura y no de cierre, suponiendo que el navegador cierre los párrafos correctamente.
A primera vista, me parece que la suposición de que los navegadores cerrarán los párrafos correctamente no es correcta. ¿Es correcta mi interpretación? En términos más generales, ¿qué compensaciones están involucradas en este tipo de decisión?
Al examinar el código fuente de moinmoin, me llamó la atención la siguiente línea de código:
# We only open those tags and let the browser auto-close them:
_auto_closing_tags = set(['p'])
( fuente )
Después de leer el resto de la implementación, me he convencido de que sí, de hecho, cuando moinmoin genera código html para una de sus páginas, generará correctamente etiquetas abiertas de párrafo, cuando corresponda, mientras que al mismo tiempo evita deliberadamente las etiquetas de cierre de párrafo (a pesar de poder hacerlo trivialmente).
Para mi caso de uso específico, bastante inusual, este comportamiento no es correcto. Estoy tentado a enviar un informe de error y / o cambiar el comportamiento. Sin embargo, parece que esta decisión de diseño se tomó cuidadosamente. No estoy lo suficientemente versado en las complejidades del estándar html, o las diversas implementaciones del navegador, para poder decir si este es el comportamiento correcto en general, y tengo la sensación de que mi instinto para corregir / cambiar este comportamiento podría ser equivocado.
¿Este código hace una suposición válida sobre las implementaciones del navegador? ¿Es válido el html generado? En términos más generales, ¿qué compensaciones podría estar perdiendo aquí?
fuente
Respuestas:
Las etiquetas finales para los
p
elementos eran opcionales en HTML y solo se requerían en XHTML. Sin embargo, el borrador HTML5 presenta un conjunto de condiciones para cuando lap
etiqueta final es realmente opcional:Dicho esto, el único argumento que he escuchado para omitir las etiquetas finales para los
p
elementos es el tamaño del documento. Depende completamente de usted decidir si eso tiene sentido para su documento o no. Personalmente, tiendo a incluir todas las etiquetas finales opcionales, en caso de que no cumpla con los requisitos para cuando la etiqueta final es opcional.fuente
<li>
etiquetas, las etiquetas actúan más como viñetas.La especificación W3C para HTML5 establece específicamente que:
Entonces, básicamente, la especificación ha proporcionado muchas formas en que se puede evitar la complejidad (grande o pequeña que sea) de cerrar la etiqueta. Cualquier implementación de navegador conforme tendría que acomodar estas excepciones.
fuente