Suponhamos que você tenha uma página com um tipo de documento e uma marcação HTML relativamente estritos, muito próximo da conformidade, mas que talvez falhe de algumas maneiras tolas, talvez por causa do conteúdo do usuário que está fora de seu controle ... digamos que você esteja trabalhando em um conteúdo sistema de gerenciamento ou um tema para um sistema de gerenciamento de conteúdo em que você controla alguma estrutura básica e precisa de javascript, mas não é responsável por tudo o que entra nas páginas.
Como você pode dizer (ou: o que determinará) quando o navegador decide entrar no modo "peculiaridades" em vez de usar seu mecanismo mais compatível com os padrões?
Estou procurando respostas para cada um dos principais navegadores, já que o IE, o Chrome, o Safari e o Firefox irão lidar com isso de maneira diferente. Um único erro é suficiente para forçá-lo ou você tem alguma margem de manobra?
fonte
Como você pode consultar o modo de renderização em JavaScript, você pode ter um Bookmarklet que informará qual modo de renderização a página está usando.
Encontrei este bookmarklet no modo de renderização que funciona bem para mim:
fonte
A resposta completa para sua pergunta específica real: 'Um único erro é suficiente para forçá-lo ou você tem alguma margem de manobra?' é que depende totalmente do erro. Por exemplo,
forçará o modo quirks no IE 6 e 7, apesar de não ser realmente um erro (eles apenas disparam totalmente quando a primeira linha do arquivo não é uma declaração). Uma lista rápida de tipos / peculiaridades pode ser encontrada aqui
Tente colocar a seguinte linha no seu HTML para testar (comportamento javascript muito ruim que estou passando aqui - desculpe ... verifique se isso nunca entra no ar :)
fonte
De acordo com http://www.quirksmode.org/css/quirksmode.html : "O problema era que algumas páginas escritas no modo quirks tinham doctypes. Portanto, cada navegador tem sua própria lista com doctypes que acionam o modo quirks. Veja este navegador gráfico de comparação para obter uma visão geral dessas listas: http://hsivonen.iki.fi/doctype/ "
Espero que isto ajude
fonte
Se você disser ao IE que deve ser rigoroso (via doctype), ele não mudará de idéia no meio da página.
fonte
Se eu entendo o modo quirks corretamente, uma página que não é validada com relação ao seu doctype declarado não é suficiente para acionar o modo quirks. Apenas não será exibido corretamente.
O melhor recurso que encontrei para determinar como diferentes navegadores lidam com cada tipo de documento está aqui .
fonte
Para o Firefox com a barra de ferramentas Desenvolvedor Web, você pode ver o trio de ícones à direita da barra. O da esquerda indica o modo em que você está.
fonte
No IE você o verá nas ferramentas do desenvolvedor (pressionando F12), ele diz no menu: Modo Documento: ... E você também pode forçar um modo diferente lá.
fonte
na página html5, escreva "
<!DOCTYPE html>
" start with page pode mudar para document.compatMode = 'CSS1Compat'fonte