standard quirks que modo entre diferencia cuál convencional and html browser quirks-mode

html - quirks - ¿Cómo saber si un navegador está en modo "peculiar"?



que es el modo quirks (9)

La respuesta completa a su pregunta específica real de ''¿Es suficiente un solo error para forzarlo o tiene algún margen de maniobra?'' es que depende totalmente del error. Por ejemplo,

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

forzará el modo peculiar en IE 6 y 7 a pesar de no detectar realmente un error (solo lanzan un total tambaleante cuando la primera línea del archivo no es una declaración). Puede encontrar una lista rápida de tipos / peculiaridades aquí

Trate de pegar la siguiente línea en su HTML para probar (muy mal javascript behavious Estoy pasando aquí - lo siento ... asegúrese de que esto nunca se ponga en marcha :)

<a href="javascript:alert(document.compatMode);">What mode am I?</a>

Supongamos que tiene una página con un tipo de documento relativamente estricto y un marcado HTML que es bastante compatible, pero que quizás se pierda de algunas maneras tontas, tal vez debido al contenido del usuario que está fuera de su control ... digamos que está trabajando en un contenido sistema de gestión o un tema para un sistema de administración de contenido donde usted controla cierta estructura básica y necesita algunos javascript, pero no es responsable de todo lo demás que entra en las páginas.

¿Cómo se puede decir (o: qué determinará) cuándo el navegador decide entrar en el modo "peculiaridades" en lugar de usar un motor que cumple con los estándares?

Estoy buscando respuestas para cada uno de los principales navegadores, ya que IE, Chrome, Safari y Firefox, por supuesto, todos manejarán eso de manera diferente. ¿Hay un solo error suficiente para forzarlo o tienes algún margen de maniobra?



Si entiendo correctamente el modo peculiar, una página que no valide contra su doctype declarado no es suficiente para activar el modo peculiar. Simplemente no se mostrará correctamente.

El mejor recurso que he encontrado para determinar cómo manejan diferentes navegadores cada doctype está aquí .


Si le dices a IE que debe ser estricto (a través de doctype), no cambiará de opinión a mitad de la página.


Como puede consultar el modo de renderizado en JavaScript, puede tener un Bookmarklet que le dirá qué modo de renderización está usando una página.

Encontré este bookmarklet de modo de renderizado que funciona bien para mí:

javascript:m=(document.compatMode==''CSS1Compat'')?''Standards'':''Quirks'';window.alert(''You%20are%20in%20''%20+%20m%20+%20''%20mode.'');


Para Firefox con Web Developer Toolbar add on, puedes mirar el trío de iconos a la derecha de la barra. El que está más a la izquierda le dice en qué modo se encuentra.


En Firefox y Opera puede determinar si su navegador está en el "modo peculiar" al verificar la información de la página.

Usando document.compatMode , le indicará el modo en que se encuentra con la mayoría de los navegadores.

En Chrome, Safari e IE , ejecute este javascript en la barra de direcciones:

javascript:window.alert(''You are in '' + (document.compatMode===''CSS1Compat''?''Standards'':''Quirks'') + '' mode.'')

(tenga en cuenta que necesitará volver a escribir la parte de javascript: después de pegar en la barra de direcciones, debido a cambios de seguridad recientes)


en la página html5, escriba " <!DOCTYPE html> " comience con la página puede cambiar a document.compatMode = ''CSS1Compat''


En IE lo verá en las herramientas de desarrollo (presionando F12), lo dice en el menú: Modo de documento: ... Y también puede forzar un modo diferente allí.