Pregunta

Me gustaría colocar una (estilo <!-- this -->) comentario en la parte superior de mi código HTML, que precede a la declaración DOCTYPE. ¿Esto se ajusta a las normas? ¿Está apoyado por los principales navegadores? ¿Hay trampas en hacer esto?

¿Fue útil?

Solución

Escribir el <!DOCTYPE> primero es sin duda la mejor práctica.

Recuerdo problemas extraños hace mucho, mucho tiempo en un navegador (probablemente IE6) ignoró una <!DOCTYPE> porque había algo aparentemente inocente antes de que - creo que sólo los espacios en blanco, pero tal vez era un comentario . En cualquier caso, fue una horrible, horrible insecto a tener que rastrear, y no hay duda nunca ninguna buena razón para tener comentarios o espacios en blanco antes de la <!DOCTYPE> .

Escribir el <!DOCTYPE> primero es, diría, los desarrolladores web sólo algo experimentados hacen para evitar horribles, insectos difíciles de alcanzar.

Otros consejos

totalmente válida para hacer

<!-- this, -->
<!DOCTYPE html>

Sin embargo, que trae todos versiones de IE en peculiaridades-mode (a menos que sea forzada en NO -quirks modo - ver el Gotchas sección de abajo). La más sencilla es mover el comentario debajo de la DOCTYPE.

<!DOCTYPE html>
<!-- this, -->

Sin embargo, otra manera de hacerlo es “actualizar” el comentario en un adecuada condicional Comentario, como el siguiente:

<!--[if !IE]> this <![endif]-->
<!DOCTYPE html>

Explicación:. a condicional observación no recuento como un comentario, en el mundo de IE

Sintaxis alternativa: Para olvidar / recuerde que los comentarios condicionales son una intrusión de Microsoft en el estándar HTML, se podría por ejemplo hacer

<!--[if anybrowser]> this <![endif]-->
<!DOCTYPE html>

Del mismo modo, para apuntar IE en particular, se podría hacer

<!--[if !anybrowser]> this <![endif]-->
<!DOCTYPE html>

Gotchas

Un comentario dentro de un comentario condicional traerá IE en peculiaridades del modo si IE ve (que es: si se utiliza un < strong> [si IE] condición, o un equivalente a [si IE] - como el [si anybrowser!] condición de que he mencionado anteriormente).. Así, por ejemplo, esto traería IE en caprichos-mode:

<![if IE]><!-- this --><![endif]>
<!DOCTYPE html>

Como lo haría

<!--[if IE]><!--><!-- this <![endif]-->
<!DOCTYPE html>

y muchas otras variantes. Considerando por ejemplo

<!--[if IE]><!DOCTYPE html><!--><!-- this <![endif]-->
<!DOCTYPE html>

haría no causa peculiaridades modo, porque aquí el comentario condicional tiene un DOCTYPE antes de cualquier otra contenido , y por lo tanto IE considera que el primer contenido de la página es un DOCTYPE.

Por último, las nuevas versiones de IE, IE8 e IE9 , pueden ser forzados a las normas-modo (y peculiaridades modo también) por el uso de otro Microsoft invención - la compatible con X-UA Directiva. Ver http://msdn.microsoft.com/en-us/library/ cc288325 (v = vs.85) .aspx En ese caso, entonces

<!-- this -->
<!DOCTYPE html>
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=8" ><![endif]-->

fuerza IE8 e IE9 en no-peculiaridades modo, mientras que IE6 y IE7 permanecerán en peculiaridades modo. Mientras que, por el contrario, este

<!--[if gte IE 8]><meta http-equiv="X-UA-Compatible" content="IE=8" ><![endif]-->
<!DOCTYPE html>

se fuerza IE8 e IE9 en modo estándar, a pesar que el contenido del comentario condicional hace no comenzar con un DOCTYPE. Y IE6 y IE7 también permanecerán en modo sin peculiaridades ya que el comentario condicional no les dirigen.

Si bien es aceptable según la norma Creo, que definitivamente quiere evitarlo, ya que va a lanzar IE en el modo de peculiaridades.

(Véase Activación de diferentes modos de renderizado )

Esto puede causar Internet Explorer 7 para la presentación en el modo de caprichos como si un tipo de documento no estaba allí en absoluto, de acuerdo con la esta página .

Los comentarios antes de que el tipo de documento están permitidos, pero causan todos versiones de IE para volver al modo peculiaridades. Ellos son, en realidad, utilizados para ese propósito veces. La declaración XML (<?xml version ...?>) tiene el mismo efecto, en IE6 y por debajo de .

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