2012-05-29 5 views
5

Referencia El HTML5 states:La restricción carácter de espacio para hacer</head> opcional

etiqueta final de un elemento de cabeza se puede omitir si el elemento de cabeza no es seguido inmediatamente por un carácter de espacio o un comentario.

¿Qué significa este espacio "character character" restriction? Sólo puedo pensar que algo así

<title>My Page</title><p>Some stuff.</p> 

es válida, mientras que

<title>My Page</title> 
<p>Some stuff.</p> 

no es, como los implícitos </head><body> etiquetas no rodearían una nueva línea. Pero siento que estoy fuera de lugar. Un ejemplo clarificador será muy apreciado.

¡Gracias a todos!

+0

me había vagamente supongo que la intención en combinación con la siguiente regla es "si '' y '' son ambos omitido, no está claro a qué espacios laterales y comentarios entre ellos ir, así que lo estamos prohibiendo por completo ". –

+0

@UlrichSchwarz - No del todo. No prohíbe el constructo, simplemente explica que no se puede usar el final de cabecera implícito en el medio del marcado permitido dentro o fuera del elemento principal. – Quentin

Respuesta

4

Simplemente significa que, dado que los comentarios y caracteres espaciales pueden aparecer dentro del elemento principal, no terminarán implícitamente el elemento principal.

Así que si quieres que desee el comentario (por ejemplo) después de que el elemento de cabezal está cerrado y no justo antes se cierra, entonces usted tiene que utilizar un explícito </head>

es decir

</title> <!-- foo --> <body> 

significa lo mismo que

</title> <!-- foo --> </head><body> 

y no hay manera de representar

</title></head> <!-- foo --> <body> 

sin utilizar un explícito </head>

+0

También tenga en cuenta que la especificación le permite omitir por completo; de hecho, un documento que solo consta de '' sigue siendo completamente válido. – user2428118

+0

Gracias por su respuesta. Estoy bastante seguro de que eso es lo que quería decir, pero no puedo evitar la sensación de que, suponiendo que quiera omitir las etiquetas HEAD y BODY por completo, la única manera de hacerlo manteniendo estas condiciones al pie de la letra es mantenerse juntas (sin espacios, nuevas líneas, pestañas) el último elemento hijo de HEAD y el primer elemento hijo de BODY, como en mi ejemplo. –

1

La documentación se refiere al otro extremo del elemento (donde normalmente iría </head>).

Por ejemplo:

<head> 
    <title>Hello World</title> 
<body> 
... 

está bien, pero esto al parecer no es:

<head> 
    <title>Hello World</title> 
    <body> 

Tampoco es éste:

<head> 
    <title>Hello World</title> 
<!-- This is a comment --> 

Sin embargo (y esto es un gran sin embargo) , nunca deberías hacer esto. Conduce a código confuso, algunos navegadores lo admiten mal y puede no ser válido en la versión futura de HTML. Mantenlo limpio y estable usando un marcado bueno y legible.

+1

Ambos están bien.Es solo que los espacios y el comentario se tratan como si aparecieran dentro de la cabeza, no después de ella. – Quentin

+0

La sintaxis está muy bien soportada por los navegadores, y tiene tal herencia que parece muy poco probable que alguna vez se vuelva inválida en el futuro (XHTML fue un intento de eso y falló). – Quentin

Cuestiones relacionadas