<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivos standards mode - Web-Zoneware</title>
	<atom:link href="https://webzoneware.com/tag/standards-mode/feed/" rel="self" type="application/rss+xml" />
	<link>https://webzoneware.com/tag/standards-mode/</link>
	<description>Mais do que apenas uma academia web.</description>
	<lastBuildDate>Wed, 21 Oct 2026 12:37:00 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://webzoneware.com/wp-content/uploads/icon-webzoneware-150x150.png</url>
	<title>Arquivos standards mode - Web-Zoneware</title>
	<link>https://webzoneware.com/tag/standards-mode/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>DOCTYPES Válidos no HTML: Guia Definitivo &#124; Web Academy</title>
		<link>https://webzoneware.com/web-academy/curso-html/doctypes-validos-e-especificacoes/</link>
					<comments>https://webzoneware.com/web-academy/curso-html/doctypes-validos-e-especificacoes/#respond</comments>
		
		<dc:creator><![CDATA[Web-Zoneware]]></dc:creator>
		<pubDate>Wed, 21 Oct 2026 12:37:00 +0000</pubDate>
				<category><![CDATA[Curso de HTML & HTML5]]></category>
		<category><![CDATA[declaracao doctype]]></category>
		<category><![CDATA[doctype html5]]></category>
		<category><![CDATA[document compatmode]]></category>
		<category><![CDATA[quirks mode html]]></category>
		<category><![CDATA[standards mode]]></category>
		<guid isPermaLink="false">https://webzoneware.com/?p=29366</guid>

					<description><![CDATA[<p>Todo documento HTML moderno e profissional deve iniciar rigorosamente na sua primeira linha com uma declaração: &#60;!DOCTYPE html&#62;. Embora pareça uma simples formalidade de sintaxe, o DOCTYPE desempenha um papel crítico nos bastidores: ele é a chave que instrui o motor de renderização do navegador (como Blink, Gecko ou WebKit) a operar no Modo Padrão [&#8230;]</p>
<p>O post <a href="https://webzoneware.com/web-academy/curso-html/doctypes-validos-e-especificacoes/">DOCTYPES Válidos no HTML: Guia Definitivo | Web Academy</a> apareceu primeiro em <a href="https://webzoneware.com">Web-Zoneware</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wzw-lesson-lead">
    Todo documento HTML moderno e profissional deve iniciar rigorosamente na sua primeira linha com uma declaração: <code>&lt;!DOCTYPE html&gt;</code>. Embora pareça uma simples formalidade de sintaxe, o DOCTYPE desempenha um papel crítico nos bastidores: ele é a chave que instrui o motor de renderização do navegador (como Blink, Gecko ou WebKit) a operar no <strong>Modo Padrão (Standards Mode)</strong>, garantindo que o CSS moderno, as fontes, os cálculos de margem e o modelo de caixa (box model) funcionem com precisão matemática sem regredir para os comportamentos problemáticos dos anos 90.
</p>
<h2>1. A Guerra dos Navegadores e a Origem do Quirks Mode</h2>
<p>
    No final da década de 1990, durante a histórica disputa entre Netscape Navigator e Internet Explorer, cada navegador inventava suas próprias regras proprietárias de renderização. Quando o consórcio W3C padronizou as especificações do HTML 4.0 e do CSS, surgiu um dilema arquitetural: <em>se os navegadores passassem a seguir as regras estritas da W3C de um dia para o outro, milhões de sites existentes na época simplesmente quebrariam</em>.
</p>
<p>
    Para solucionar esse impasse sem quebrar a web antiga, os engenheiros criaram a técnica de <strong>DOCTYPE Sniffing</strong> (detecção de modo de renderização):
</p>
<div class="wzw-table-responsive">
<table class="wzw-tech-table">
<thead>
<tr>
<th>Modo de Renderização</th>
<th>Como é Acionado?</th>
<th>Comportamento do Navegador</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Standards Mode</strong> (Modo Padrão)</td>
<td>Presença de <code>&lt;!DOCTYPE html&gt;</code> válido na linha 1.</td>
<td>Renderização moderna, aderente a 100% dos padrões atuais do W3C e WHATWG.</td>
</tr>
<tr>
<td><strong>Quirks Mode</strong> (Modo de Compatibilidade)</td>
<td>Omissão do DOCTYPE ou sintaxe corrompida.</td>
<td>O navegador volta no tempo e emula os bugs e comportamentos não-padrão do Netscape 4 e IE 5.5.</td>
</tr>
<tr>
<td><strong>Almost Standards Mode</strong></td>
<td>DOCTYPES antigos do HTML 4 Transitional com DTD.</td>
<td>Segue os padrões modernos, exceto pelo dimensionamento vertical de imagens em tabelas.</td>
</tr>
</tbody>
</table>
</div>
<h2>2. A Evolução dos DOCTYPES: Do SGML Monstruoso ao HTML5 Minimalista</h2>
<p>
    Nas versões anteriores (HTML 4.01 e XHTML 1.0), o HTML era tecnicamente uma aplicação derivada da <strong>SGML</strong> (<em>Standard Generalized Markup Language</em>). Por essa razão, o DOCTYPE precisava apontar para arquivos externos gigantescos chamados <strong>DTDs</strong> (<em>Document Type Definitions</em>):
</p>
    <div class="wzw-ide-card" id="wzw-code-54146" data-lang="html">
        <div class="wzw-ide-header">
            <div class="wzw-ide-dots" aria-hidden="true">
                <span class="wzw-dot wzw-dot-red"></span>
                <span class="wzw-dot wzw-dot-amber"></span>
                <span class="wzw-dot wzw-dot-green"></span>
            </div>
            <div class="wzw-ide-meta">
                <span class="wzw-ide-lang-badge">HTML5</span>
                                <span class="wzw-ide-lines-count">8 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-54146', this)" title="Alternar quebra automática de linhas">
                    ⇄ Wrap
                </button>
                <button type="button" class="wzw-ide-btn wzw-ide-copy-btn" onclick="wzwCopyCodeBlock('wzw-code-54146', this)" aria-label="Copiar código para a área de transferência">
                    📋 <span class="wzw-copy-text">Copiar Código</span>
                </button>
            </div>
        </div>
        <div class="wzw-ide-body">
            <pre class="wzw-ide-pre" tabindex="0"><code class="wzw-ide-code"><span class="wzw-code-line"><span class="wzw-tk-comment">&lt;!-- ❌ Passado (HTML 4.01 Strict): Um pesadelo de digitação com DTD --&gt;</span></span>
<span class="wzw-code-line">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt;</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line"><span class="wzw-tk-comment">&lt;!-- ❌ Passado (XHTML 1.0 Strict): XML rígido com declaração longa --&gt;</span></span>
<span class="wzw-code-line">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line"><span class="wzw-tk-comment">&lt;!-- ✅ Presente e Futuro (HTML5 Living Standard): Apenas 15 caracteres! --&gt;</span></span>
<span class="wzw-code-line"><span class="wzw-tk-tag">&lt;!DOCTYPE</span><span class="wzw-tk-kw"> html</span><span class="wzw-tk-tag">&gt;</span></span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>&lt;!-- ❌ Passado (HTML 4.01 Strict): Um pesadelo de digitação com DTD --&gt;
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt;

&lt;!-- ❌ Passado (XHTML 1.0 Strict): XML rígido com declaração longa --&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

&lt;!-- ✅ Presente e Futuro (HTML5 Living Standard): Apenas 15 caracteres! --&gt;
&lt;!DOCTYPE html&gt;</textarea>
        </div>
    </div>
    
<p>
    <strong>A grande virada do HTML5:</strong> O HTML moderno não é mais baseado em SGML. Portanto, a declaração <code>&lt;!DOCTYPE html&gt;</code> serve hoje a um único propósito vital: <strong>impedir que o navegador caia no Quirks Mode</strong>.
</p>
<p>
    Por ser uma instrução para o motor do navegador e não uma tag HTML comum, o DOCTYPE não possui tag de fechamento e não é sensível a maiúsculas/minúsculas (<code>&lt;!DOCTYPE html&gt;</code>, <code>&lt;!doctype html&gt;</code> ou <code>&lt;!DoCtYpE hTmL&gt;</code> produzem exatamente o mesmo efeito).
</p>
<h2>3. Os Estragos Visuais Provocados pelo Quirks Mode no CSS</h2>
<p>
    Esquecer a declaração <code>&lt;!DOCTYPE html&gt;</code> pode arruinar completamente o layout do seu site. Observe os principais efeitos colaterais do Quirks Mode:
</p>
<ul>
<li>
        <strong>Box Model Aberrante:</strong> No Quirks Mode, as propriedades <code>width</code> e <code>height</code> englobam erroneamente o <code>padding</code> e a <code>border</code> de forma não padronizada, quebrando grids e larguras calculadas.
    </li>
<li>
        <strong>Herança de Fontes Rompida:</strong> Elementos dentro de tabelas (<code>&lt;td&gt;</code>, <code>&lt;th&gt;</code>) não herdam o tamanho e a família de fonte declarados no <code>body</code>.
    </li>
<li>
        <strong>Alturas Percentuais Quebradas:</strong> Regras como <code>height: 100%</code> em containers secundários falham em propagar a altura da viewport.
    </li>
<li>
        <strong>Seletores Case-Insensitive:</strong> Seletores de classes e IDs passam a ignorar letras maiúsculas e minúsculas, gerando comportamentos imprevisíveis.
    </li>
</ul>
<h2>4. Como Verificar o Modo Ativo via JavaScript (document.compatMode)</h2>
<p>
    O navegador expõe a propriedade de leitura <code>document.compatMode</code> para que seus scripts saibam com certeza se a página está renderizando em modo padrão:
</p>
    <div class="wzw-ide-card" id="wzw-code-47424" data-lang="javascript">
        <div class="wzw-ide-header">
            <div class="wzw-ide-dots" aria-hidden="true">
                <span class="wzw-dot wzw-dot-red"></span>
                <span class="wzw-dot wzw-dot-amber"></span>
                <span class="wzw-dot wzw-dot-green"></span>
            </div>
            <div class="wzw-ide-meta">
                <span class="wzw-ide-lang-badge">JavaScript</span>
                                <span class="wzw-ide-lines-count">6 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-47424', this)" title="Alternar quebra automática de linhas">
                    ⇄ Wrap
                </button>
                <button type="button" class="wzw-ide-btn wzw-ide-copy-btn" onclick="wzwCopyCodeBlock('wzw-code-47424', this)" aria-label="Copiar código para a área de transferência">
                    📋 <span class="wzw-copy-text">Copiar Código</span>
                </button>
            </div>
        </div>
        <div class="wzw-ide-body">
            <pre class="wzw-ide-pre" tabindex="0"><code class="wzw-ide-code"><span class="wzw-code-line"><span class="wzw-tk-comment">// Avalia o modo de renderização da página atual</span></span>
<span class="wzw-code-line"><span class="wzw-tk-kw">if</span> (document.compatMode === <span class="wzw-tk-str">&#039;CSS1Compat&#039;</span>) {</span>
<span class="wzw-code-line">    console.<span class="wzw-tk-fn">log</span>(<span class="wzw-tk-str">&#039;✅ Excelente! A página está operando no Standards Mode.&#039;</span>);</span>
<span class="wzw-code-line">} <span class="wzw-tk-kw">else</span> <span class="wzw-tk-kw">if</span> (document.compatMode === <span class="wzw-tk-str">&#039;BackCompat&#039;</span>) {</span>
<span class="wzw-code-line">    console.<span class="wzw-tk-fn">warn</span>(<span class="wzw-tk-str">&#039;🚨 ALERTA: A página caiu no Quirks Mode! O DOCTYPE está ausente ou inválido.&#039;</span>);</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>// Avalia o modo de renderização da página atual
if (document.compatMode === &#039;CSS1Compat&#039;) {
    console.log(&#039;✅ Excelente! A página está operando no Standards Mode.&#039;);
} else if (document.compatMode === &#039;BackCompat&#039;) {
    console.warn(&#039;🚨 ALERTA: A página caiu no Quirks Mode! O DOCTYPE está ausente ou inválido.&#039;);
}</textarea>
        </div>
    </div>
    
<h2>5. Código Prático Completo: Testador e Inspetor de Modo de Renderização</h2>
<p>
    Abaixo construímos uma ferramenta interativa que inspeciona o modo de renderização ativo e demonstra a estabilidade do layout moderno:
</p>
    <div class="wzw-ide-card" id="wzw-code-66345" data-lang="html">
        <div class="wzw-ide-header">
            <div class="wzw-ide-dots" aria-hidden="true">
                <span class="wzw-dot wzw-dot-red"></span>
                <span class="wzw-dot wzw-dot-amber"></span>
                <span class="wzw-dot wzw-dot-green"></span>
            </div>
            <div class="wzw-ide-meta">
                <span class="wzw-ide-lang-badge">HTML5</span>
                                <span class="wzw-ide-lines-count">18 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-66345', this)" title="Alternar quebra automática de linhas">
                    ⇄ Wrap
                </button>
                <button type="button" class="wzw-ide-btn wzw-ide-copy-btn" onclick="wzwCopyCodeBlock('wzw-code-66345', this)" aria-label="Copiar código para a área de transferência">
                    📋 <span class="wzw-copy-text">Copiar Código</span>
                </button>
            </div>
        </div>
        <div class="wzw-ide-body">
            <pre class="wzw-ide-pre" tabindex="0"><code class="wzw-ide-code"><span class="wzw-code-line"><span class="wzw-tk-tag">&lt;div</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;wzw-doctype-inspector&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;h3&gt;</span>⚙️ Diagnóstico do Motor de Renderização<span class="wzw-tk-tag">&lt;/h3&gt;</span></span>
<span class="wzw-code-line">    </span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;div</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;diagnostic-panel&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;p&gt;</span>Status de Compatibilidade Atual:<span class="wzw-tk-tag">&lt;/p&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;div</span> <span class="wzw-tk-attr">id</span>=<span class="wzw-tk-str">&quot;statusCompat&quot;</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;status-badge&quot;</span><span class="wzw-tk-tag">&gt;</span>Analisando...<span class="wzw-tk-tag">&lt;/div&gt;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;/div&gt;</span></span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;div</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;box-model-demo&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;h4&gt;</span>Demonstração do Modelo de Caixa (Standards Mode):<span class="wzw-tk-tag">&lt;/h4&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;div</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;sample-box&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">            Largura Declarada: 250px | Padding: 20px | Borda: 4px</span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;/div&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;small</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;box-desc&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">            No Standards Mode com <span class="wzw-tk-tag">&lt;code&gt;</span>box-sizing: border-box<span class="wzw-tk-tag">&lt;/code&gt;</span>, a largura total permanece exatamente 250px sem estourar o container.</span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;/small&gt;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;/div&gt;</span></span>
<span class="wzw-code-line"><span class="wzw-tk-tag">&lt;/div&gt;</span></span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>&lt;div class=&quot;wzw-doctype-inspector&quot;&gt;
    &lt;h3&gt;⚙️ Diagnóstico do Motor de Renderização&lt;/h3&gt;
    
    &lt;div class=&quot;diagnostic-panel&quot;&gt;
        &lt;p&gt;Status de Compatibilidade Atual:&lt;/p&gt;
        &lt;div id=&quot;statusCompat&quot; class=&quot;status-badge&quot;&gt;Analisando...&lt;/div&gt;
    &lt;/div&gt;

    &lt;div class=&quot;box-model-demo&quot;&gt;
        &lt;h4&gt;Demonstração do Modelo de Caixa (Standards Mode):&lt;/h4&gt;
        &lt;div class=&quot;sample-box&quot;&gt;
            Largura Declarada: 250px | Padding: 20px | Borda: 4px
        &lt;/div&gt;
        &lt;small class=&quot;box-desc&quot;&gt;
            No Standards Mode com &lt;code&gt;box-sizing: border-box&lt;/code&gt;, a largura total permanece exatamente 250px sem estourar o container.
        &lt;/small&gt;
    &lt;/div&gt;
&lt;/div&gt;</textarea>
        </div>
    </div>
    
    <div class="wzw-ide-card" id="wzw-code-47470" data-lang="css">
        <div class="wzw-ide-header">
            <div class="wzw-ide-dots" aria-hidden="true">
                <span class="wzw-dot wzw-dot-red"></span>
                <span class="wzw-dot wzw-dot-amber"></span>
                <span class="wzw-dot wzw-dot-green"></span>
            </div>
            <div class="wzw-ide-meta">
                <span class="wzw-ide-lang-badge">CSS3</span>
                                <span class="wzw-ide-lines-count">63 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-47470', this)" title="Alternar quebra automática de linhas">
                    ⇄ Wrap
                </button>
                <button type="button" class="wzw-ide-btn wzw-ide-copy-btn" onclick="wzwCopyCodeBlock('wzw-code-47470', this)" aria-label="Copiar código para a área de transferência">
                    📋 <span class="wzw-copy-text">Copiar Código</span>
                </button>
            </div>
        </div>
        <div class="wzw-ide-body">
            <pre class="wzw-ide-pre" tabindex="0"><code class="wzw-ide-code"><span class="wzw-code-line">.wzw-doctype-inspector {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">max-width</span>: <span class="wzw-tk-num">580px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">padding</span>: <span class="wzw-tk-num">24px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: <span class="wzw-tk-num">#0f172a</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border</span>: <span class="wzw-tk-num">1px</span> solid <span class="wzw-tk-num">#1e293b</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border-radius</span>: <span class="wzw-tk-num">8px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: <span class="wzw-tk-num">#f8fafc</span>;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.diagnostic-panel {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">display</span>: flex;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">justify-content</span>: space-between;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">align-items</span>: center;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">padding</span>: <span class="wzw-tk-num">14px</span> <span class="wzw-tk-num">18px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: <span class="wzw-tk-num">#1e293b</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border-radius</span>: <span class="wzw-tk-num">6px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">margin-bottom</span>: <span class="wzw-tk-num">20px</span>;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.diagnostic-panel p {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">margin</span>: 0;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-weight</span>: 600;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.status-badge {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">padding</span>: <span class="wzw-tk-num">6px</span> <span class="wzw-tk-num">14px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border-radius</span>: <span class="wzw-tk-num">4px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-weight</span>: 700;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-size</span>: <span class="wzw-tk-num">0.9rem</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-family</span>: monospace;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.badge-success {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: <span class="wzw-tk-num">#10b981</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: <span class="wzw-tk-num">#fff</span>;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.badge-danger {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: <span class="wzw-tk-num">#ef4444</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: <span class="wzw-tk-num">#fff</span>;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.box-model-demo h4 {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">margin-top</span>: 0;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: <span class="wzw-tk-num">#38bdf8</span>;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.sample-box {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">width</span>: <span class="wzw-tk-num">250px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">padding</span>: <span class="wzw-tk-num">20px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border</span>: <span class="wzw-tk-num">4px</span> solid <span class="wzw-tk-num">#38bdf8</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">box-sizing</span>: border-box;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">background-color</span>: <span class="wzw-tk-num">#1e293b</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">border-radius</span>: <span class="wzw-tk-num">6px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">font-size</span>: <span class="wzw-tk-num">0.85rem</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">text-align</span>: center;</span>
<span class="wzw-code-line">}</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">.box-desc {</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">display</span>: block;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">margin-top</span>: <span class="wzw-tk-num">10px</span>;</span>
<span class="wzw-code-line">    <span class="wzw-tk-attr">color</span>: <span class="wzw-tk-num">#94a3b8</span>;</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>.wzw-doctype-inspector {
    max-width: 580px;
    padding: 24px;
    background-color: #0f172a;
    border: 1px solid #1e293b;
    border-radius: 8px;
    color: #f8fafc;
}

.diagnostic-panel {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 18px;
    background-color: #1e293b;
    border-radius: 6px;
    margin-bottom: 20px;
}

.diagnostic-panel p {
    margin: 0;
    font-weight: 600;
}

.status-badge {
    padding: 6px 14px;
    border-radius: 4px;
    font-weight: 700;
    font-size: 0.9rem;
    font-family: monospace;
}

.badge-success {
    background-color: #10b981;
    color: #fff;
}

.badge-danger {
    background-color: #ef4444;
    color: #fff;
}

.box-model-demo h4 {
    margin-top: 0;
    color: #38bdf8;
}

.sample-box {
    width: 250px;
    padding: 20px;
    border: 4px solid #38bdf8;
    box-sizing: border-box;
    background-color: #1e293b;
    border-radius: 6px;
    font-size: 0.85rem;
    text-align: center;
}

.box-desc {
    display: block;
    margin-top: 10px;
    color: #94a3b8;
}</textarea>
        </div>
    </div>
    
    <div class="wzw-ide-card" id="wzw-code-17042" data-lang="javascript">
        <div class="wzw-ide-header">
            <div class="wzw-ide-dots" aria-hidden="true">
                <span class="wzw-dot wzw-dot-red"></span>
                <span class="wzw-dot wzw-dot-amber"></span>
                <span class="wzw-dot wzw-dot-green"></span>
            </div>
            <div class="wzw-ide-meta">
                <span class="wzw-ide-lang-badge">JavaScript</span>
                                <span class="wzw-ide-lines-count">10 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-17042', this)" title="Alternar quebra automática de linhas">
                    ⇄ Wrap
                </button>
                <button type="button" class="wzw-ide-btn wzw-ide-copy-btn" onclick="wzwCopyCodeBlock('wzw-code-17042', this)" aria-label="Copiar código para a área de transferência">
                    📋 <span class="wzw-copy-text">Copiar Código</span>
                </button>
            </div>
        </div>
        <div class="wzw-ide-body">
            <pre class="wzw-ide-pre" tabindex="0"><code class="wzw-ide-code"><span class="wzw-code-line"><span class="wzw-tk-kw">const</span> badge = document.<span class="wzw-tk-fn">getElementById</span>(<span class="wzw-tk-str">&#039;statusCompat&#039;</span>);</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line"><span class="wzw-tk-comment">// Inspeciona a propriedade nativa do navegador</span></span>
<span class="wzw-code-line"><span class="wzw-tk-kw">if</span> (document.compatMode === <span class="wzw-tk-str">&#039;CSS1Compat&#039;</span>) {</span>
<span class="wzw-code-line">    badge.className = <span class="wzw-tk-str">&#039;status-badge badge-success&#039;</span>;</span>
<span class="wzw-code-line">    badge.textContent = <span class="wzw-tk-str">&#039;CSS1Compat (Standards Mode Ativo)&#039;</span>;</span>
<span class="wzw-code-line">} <span class="wzw-tk-kw">else</span> {</span>
<span class="wzw-code-line">    badge.className = <span class="wzw-tk-str">&#039;status-badge badge-danger&#039;</span>;</span>
<span class="wzw-code-line">    badge.textContent = <span class="wzw-tk-str">&#039;BackCompat (Quirks Mode Ativado)&#039;</span>;</span>
<span class="wzw-code-line">}</span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>const badge = document.getElementById(&#039;statusCompat&#039;);

// Inspeciona a propriedade nativa do navegador
if (document.compatMode === &#039;CSS1Compat&#039;) {
    badge.className = &#039;status-badge badge-success&#039;;
    badge.textContent = &#039;CSS1Compat (Standards Mode Ativo)&#039;;
} else {
    badge.className = &#039;status-badge badge-danger&#039;;
    badge.textContent = &#039;BackCompat (Quirks Mode Ativado)&#039;;
}</textarea>
        </div>
    </div>
    
<div class="wzw-playground-action-bar">
    <span class="wzw-playground-desc">🧪 <strong>Quer inspecionar o document.compatMode no Playground agora?</strong></span><br />
    <a href="https://webzoneware.com/web-academy/playground-web/" class="wzw-btn-playground" target="_blank" rel="noopener">⚡ Abrir no Playground IDE &rarr;<br />
    </a>
</div>
<div class="wzw-pro-tip">
<h4>⚠️ A Regra Inviolável do Primeiro Caractere</h4>
<p>
        Para que o <code>&lt;!DOCTYPE html&gt;</code> surta efeito, ele <strong>deve ser rigorosamente o primeiro caractere da linha 1</strong> do seu arquivo HTML.
    </p>
<p>
        Se você inserir qualquer elemento antes dele — como uma linha em branco com caracteres invisíveis de formatação (BOM incorreto), uma tag de script ou até mesmo um simples comentário HTML como <code>&lt;!-- Meu Site --&gt;</code> —, navegadores legados (como Internet Explorer) entrarão imediatamente em Quirks Mode!
    </p>
</div>
<h2>6. Ferramentas Relacionadas &#038; Próximos Passos</h2>
<p>
    Garanta a máxima integridade técnica das suas páginas com as ferramentas da nossa suíte:
</p>
<ul>
<li><a href="https://webzoneware.com/web-ferramentas/central-dev/">Central do Desenvolvedor Web</a>: Valide marcações HTML, inspecione compatibilidade e depure scripts.</li>
<li><a href="https://webzoneware.com/web-ferramentas/limpador-formatador-html/">Limpador e Formatador HTML</a>: Higienize seu código garantindo a presença do DOCTYPE perfeito na primeira linha.</li>
<li><a href="https://webzoneware.com/web-academy/html/acessibilidade-web-wcag-html/">Lição 45: Acessibilidade Web &#038; WCAG no HTML</a>: Revise as normas de acessibilidade e semântica nativa.</li>
<li><a href="https://webzoneware.com/web-academy/html/conjunto-de-caracteres-charsets/">Lição 47: Conjuntos de Caracteres &#038; UTF-8</a>: Descubra como a codificação correta previne erros de acentuação e caracteres estranhos.</li>
</ul>
<h2>7. Referências Técnicas &#038; Especificações Oficiais</h2>
<ul>
<li><a href="https://html.spec.whatwg.org/multipage/syntax.html#the-doctype" target="_blank" rel="noopener">WHATWG HTML Living Standard: The DOCTYPE Specification</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Quirks_Mode_and_Standards_Mode" target="_blank" rel="noopener">MDN Web Docs: Quirks Mode and Standards Mode</a></li>
<li><a href="https://www.w3.org/QA/Tips/Doctype" target="_blank" rel="noopener">W3C Quality Assurance: Choosing a DOCTYPE</a></li>
</ul>
<p><!-- Schema.org TechArticle JSON-LD --><br />
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "TechArticle",
  "headline": "DOCTYPES Válidos e Modos de Renderização: Standards vs Quirks Mode",
  "description": "Entenda o papel do DOCTYPE no HTML5, evite o temido Quirks Mode e garanta a renderização padronizada nos navegadores.",
  "url": "https://webzoneware.com/web-academy/html/doctypes-validos-e-especificacoes/",
  "inLanguage": "pt-BR",
  "proficiencyLevel": "Intermediate",
  "articleSection": "Web Academy - Curso de HTML & HTML5 Completo",
  "author": {
    "@type": "Organization",
    "name": "Web-ZoneWare",
    "url": "https://webzoneware.com"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Web-ZoneWare",
    "logo": {
      "@type": "ImageObject",
      "url": "https://webzoneware.com/wp-content/themes/astra-child/assets/images/logo.png"
    }
  }
}
</script></p>
<p>O post <a href="https://webzoneware.com/web-academy/curso-html/doctypes-validos-e-especificacoes/">DOCTYPES Válidos no HTML: Guia Definitivo | Web Academy</a> apareceu primeiro em <a href="https://webzoneware.com">Web-Zoneware</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://webzoneware.com/web-academy/curso-html/doctypes-validos-e-especificacoes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
