Supposons que vous ayez une page avec un doctype relativement strict et un balisage HTML assez proche de la conformité, mais qui manque peut-être de quelques manières idiotes, peut-être à cause d'un contenu utilisateur qui échappe à votre contrôle ... disons que vous travaillez sur un contenu système de gestion ou un thème pour un système de gestion de contenu où vous contrôlez une structure de base et avez besoin de javascript, mais vous n'êtes pas responsable de tout ce qui entre dans les pages.
Comment savoir (ou: qu'est-ce qui déterminera) quand le navigateur décide de passer en mode "bizarreries" plutôt que d'utiliser son moteur plus conforme aux normes?
Je cherche des réponses pour chacun des principaux navigateurs, car IE, Chrome, Safari et Firefox vont bien sûr tous gérer cela différemment. Une seule erreur suffit-elle pour la forcer ou avez-vous une marge de manœuvre?
la source
Comme vous pouvez interroger le mode de rendu en JavaScript, vous pouvez avoir un Bookmarklet qui vous dira quel mode de rendu une page utilise.
J'ai trouvé ce bookmarklet de mode de rendu qui fonctionne bien pour moi:
la source
La réponse complète à votre question spécifique: "Une seule erreur suffit-elle pour la forcer ou avez-vous une certaine marge de manœuvre?" est que cela dépend totalement de l'erreur. Par exemple,
forcera le mode quirks dans IE 6 & 7 bien qu'il ne s'agisse pas vraiment d'une erreur (ils lancent juste un total bancal lorsque la toute première ligne du fichier n'est pas une déclaration). Une liste rapide des types / bizarreries peut être trouvée ici
Essayez de coller la ligne suivante dans votre HTML pour le test (très mauvais comportement javascript que je passe ici - désolé ... assurez-vous que cela ne sera jamais mis en ligne :)
la source
Selon http://www.quirksmode.org/css/quirksmode.html : "Le problème était que certaines pages écrites en mode quirks avaient des doctypes. Par conséquent, chaque navigateur a sa propre liste avec des doctypes qui déclenchent le mode quirks. Voir ce navigateur tableau de comparaison pour un aperçu de ces listes: http://hsivonen.iki.fi/doctype/ "
J'espère que cela t'aides
la source
Si vous dites à IE qu'il doit être strict (via doctype), il ne changera pas d'avis à mi-chemin de la page.
la source
Si je comprends correctement le mode quirks, une page qui ne valide pas par rapport à son doctype déclaré ne suffit pas pour déclencher le mode quirks. Il ne s'affichera tout simplement pas correctement.
La meilleure ressource que j'ai trouvée pour déterminer comment différents navigateurs gèrent chaque doctype est ici .
la source
Pour Firefox avec le module complémentaire Web Developer Toolbar, vous pouvez regarder le trio d'icônes à droite de la barre. Le plus à gauche vous indique dans quel mode vous vous trouvez.
la source
Dans IE, vous le verrez dans les outils de développement (en appuyant sur F12), il le dit dans le menu: Mode Document: ... Et vous pouvez également y forcer un mode différent.
la source
dans la page html5, écrire "
<!DOCTYPE html>
" commencer par la page peut changer en document.compatMode = 'CSS1Compat'la source