<?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 diferenca html4 e html5 - Web-Zoneware</title>
	<atom:link href="https://webzoneware.com/tag/diferenca-html4-e-html5/feed/" rel="self" type="application/rss+xml" />
	<link>https://webzoneware.com/tag/diferenca-html4-e-html5/</link>
	<description>Mais do que apenas uma academia web.</description>
	<lastBuildDate>Wed, 21 Oct 2026 02:46:27 +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 diferenca html4 e html5 - Web-Zoneware</title>
	<link>https://webzoneware.com/tag/diferenca-html4-e-html5/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Introdução ao HTML5: O Que Mudou e Novidades &#124; Web Academy</title>
		<link>https://webzoneware.com/web-academy/curso-html/introducao-ao-html5-novidades/</link>
					<comments>https://webzoneware.com/web-academy/curso-html/introducao-ao-html5-novidades/#respond</comments>
		
		<dc:creator><![CDATA[Web-Zoneware]]></dc:creator>
		<pubDate>Wed, 21 Oct 2026 02:46:27 +0000</pubDate>
				<category><![CDATA[Curso de HTML & HTML5]]></category>
		<category><![CDATA[apis nativas html5]]></category>
		<category><![CDATA[diferenca html4 e html5]]></category>
		<category><![CDATA[introducao ao html5 novidades]]></category>
		<category><![CDATA[living standard html5]]></category>
		<category><![CDATA[o que e html5]]></category>
		<category><![CDATA[web academy]]></category>
		<guid isPermaLink="false">https://webzoneware.com/?p=29315</guid>

					<description><![CDATA[<p>O lançamento do HTML5 não representou uma simples atualização rotineira de versão; foi o maior salto evolutivo na história da internet. Antes do HTML5, os navegadores eram essencialmente leitores de documentos de texto estáticos. Para reproduzir vídeos, executar jogos, tocar áudio ou manipular dados dinâmicos, os usuários eram obrigados a instalar plugins proprietários pesados e [&#8230;]</p>
<p>O post <a href="https://webzoneware.com/web-academy/curso-html/introducao-ao-html5-novidades/">Introdução ao HTML5: O Que Mudou e Novidades | Web Academy</a> apareceu primeiro em <a href="https://webzoneware.com">Web-Zoneware</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p class="wzw-lesson-lead">O lançamento do <strong>HTML5</strong> não representou uma simples atualização rotineira de versão; foi o maior salto evolutivo na história da internet. Antes do HTML5, os navegadores eram essencialmente leitores de documentos de texto estáticos. Para reproduzir vídeos, executar jogos, tocar áudio ou manipular dados dinâmicos, os usuários eram obrigados a instalar plugins proprietários pesados e inseguros, como Adobe Flash e Silverlight. O HTML5 baniu os plugins ao transformar o navegador em um verdadeiro <strong>sistema operacional para aplicações web ricas</strong>, introduzindo semântica moderna, suporte nativo a multimídia e uma poderosa suíte de APIs nativas.</p>
<h2>1. Os 3 Grandes Pilares da Revolução do HTML5</h2>
<p>Para compreender o ecossistema moderno da web, é fundamental enxergar o HTML5 sob três pilares interdependentes:</p>
<div class="wzw-table-responsive">
<table class="wzw-table">
<thead>
<tr>
<th style="width: 180px;">Pilar Tecnológico</th>
<th style="width: 220px;">O Que Mudou na Prática</th>
<th>Exemplos de Recursos Nativos</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>1. Semântica Estrutural</strong></td>
<td>Substituição de contêineres <code>&lt;div&gt;</code> genéricos por tags com significado explícito para robôs de busca e leitores de tela.</td>
<td><code>&lt;header&gt;</code>, <code>&lt;nav&gt;</code>, <code>&lt;main&gt;</code>, <code>&lt;article&gt;</code>, <code>&lt;section&gt;</code>, <code>&lt;aside&gt;</code>, <code>&lt;footer&gt;</code>.</td>
</tr>
<tr>
<td><strong>2. Multimídia Nativa</strong></td>
<td>Fim definitivo do Adobe Flash Player; o navegador decodifica mídias com aceleração gráfica direta por hardware.</td>
<td><code>&lt;video&gt;</code>, <code>&lt;audio&gt;</code>, <code>&lt;source&gt;</code>, <code>&lt;track&gt;</code> (legendas nativas).</td>
</tr>
<tr>
<td><strong>3. Suíte de APIs JavaScript</strong></td>
<td>Acesso a hardware, banco de dados no navegador, multithreading e gráficos vetoriais/bitmaps sem bibliotecas externas.</td>
<td>Canvas 2D, SVG Inline, Geolocation, Web Storage (localStorage), Web Workers, WebSockets, Drag and Drop.</td>
</tr>
</tbody>
</table>
</div>
<div class="wzw-callout wzw-callout-info">
    <span class="wzw-callout-icon">💡</span></p>
<div class="wzw-callout-text">
        <strong>O Fim da Era dos Plugins:</strong> Em dezembro de 2020, o Adobe Flash foi oficialmente descontinuado em todos os navegadores do planeta. Graças às tags <code>&lt;video&gt;</code>, <code>&lt;audio&gt;</code> e à API <code>&lt;canvas&gt;</code> do HTML5, a web tornou-se 100% aberta, acessível, segura e compatível com baterias de smartphones.
    </div>
</div>
<h2>2. Simplificação Sintática: Escreva Menos, Produza Mais</h2>
<p>O HTML5 eliminou dezenas de declarações arcaicas e prolixas herdadas do SGML dos anos 1990:</p>
<h3>A Nova Declaração DOCTYPE</h3>
<p>No HTML 4 e no XHTML, a declaração de tipo de documento ocupava duas a três linhas com referências a links DTD externos. No HTML5, ela foi reduzida a apenas 15 caracteres essenciais:</p>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span>Comparativo — Declaração DOCTYPE</span><br />
        <span>doctype-diff.html</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-29106" data-lang="code">
        <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">HTML</span>
                                <span class="wzw-ide-lines-count">5 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-29106', 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-29106', 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;!-- Antes no HTML 4.01 Strict (Prolixo e Difícil de Lembrar) --&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;!-- Agora no HTML5 Moderno (Simples e Canônico) --&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;!-- Antes no HTML 4.01 Strict (Prolixo e Difícil de Lembrar) --&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;!-- Agora no HTML5 Moderno (Simples e Canônico) --&gt;
&lt;!DOCTYPE html&gt;</textarea>
        </div>
    </div>
    
</div>
<h3>Declaração de Charset e Inclusão de CSS/JS</h3>
<p>O HTML5 consagrou o UTF-8 e o JavaScript como os padrões absolutos da web, eliminando atributos desnecessários:</p>
<ul>
<li><strong>Codificação de Caracteres:</strong> De <code>&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;</code> para simplesmente <code>&lt;meta charset="UTF-8"&gt;</code>.</li>
<li><strong>Folhas de Estilo CSS:</strong> O atributo <code>type="text/css"</code> tornou-se dispensável; basta escrever <code>&lt;link rel="stylesheet" href="estilo.css"&gt;</code>.</li>
<li><strong>Scripts JavaScript:</strong> O atributo <code>type="text/javascript"</code> não é mais necessário; use apenas <code>&lt;script src="app.js"&gt;&lt;/script&gt;</code>.</li>
</ul>
<h2>3. Novos Tipos de Entrada em Formulários e Validação Nativa</h2>
<p>Antes do HTML5, para validar se um usuário havia digitado um e-mail válido ou selecionar uma data, eram necessárias dezenas de linhas de código JavaScript complexo. O HTML5 incorporou validação automática diretamente no motor do navegador:</p>
<div class="wzw-table-responsive">
<table class="wzw-table">
<thead>
<tr>
<th style="width: 170px;">Novo Tipo de Input</th>
<th style="width: 200px;">Comportamento Visual</th>
<th>Comportamento Mobile / Teclado</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>type="email"</code></td>
<td>Valida automaticamente a presença de <code>@</code> e domínio.</td>
<td>Abre o teclado mobile com o símbolo <code>@</code> e <code>.com</code> visíveis.</td>
</tr>
<tr>
<td><code>type="tel"</code></td>
<td>Campo para números telefônicos.</td>
<td>Abre o teclado numérico virtual no celular.</td>
</tr>
<tr>
<td><code>type="date"</code></td>
<td>Abre um calendário nativo com seleção de dia/mês/ano.</td>
<td>Abre o seletor de data rolante nativo do iOS e Android.</td>
</tr>
<tr>
<td><code>type="color"</code></td>
<td>Abre um seletor visual de paleta de cores (Colorpicker).</td>
<td>Permite escolher tons visuais sem bibliotecas externas.</td>
</tr>
<tr>
<td><code>type="range"</code></td>
<td>Gera uma barra deslizante de controle (Slider).</td>
<td>Sensível ao toque para ajuste de volume, brilho ou faixas de preço.</td>
</tr>
</tbody>
</table>
</div>
<h2>4. Tabela de Comparação: Antes do HTML5 vs Depois do HTML5</h2>
<p>Confira como o HTML5 revolucionou os padrões de desenvolvimento:</p>
<div class="wzw-table-responsive">
<table class="wzw-table">
<thead>
<tr>
<th>Recurso</th>
<th>Na Web Antiga (HTML 4 / XHTML)</th>
<th>No HTML5 Moderno</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Vídeo &#038; Áudio</strong></td>
<td>Plugins de terceiros (Adobe Flash, QuickTime).</td>
<td>Tags nativas <code>&lt;video&gt;</code> e <code>&lt;audio&gt;</code> com controles da UI.</td>
</tr>
<tr>
<td><strong>Gráficos Dinâmicos</strong></td>
<td>Applets Java ou Flash compilado (.swf).</td>
<td>Tag <code>&lt;canvas&gt;</code> para 2D e WebGL nativo para 3D.</td>
</tr>
<tr>
<td><strong>Banco de Dados Local</strong></td>
<td>Cookies minúsculos de apenas 4 KB.</td>
<td><code>localStorage</code> (5 MB+) e <code>IndexedDB</code> (gigabytes).</td>
</tr>
<tr>
<td><strong>Estrutura de Layout</strong></td>
<td><code>&lt;div id="header"&gt;</code> e <code>&lt;div id="menu"&gt;</code>.</td>
<td>Elementos semânticos (<code>&lt;header&gt;</code>, <code>&lt;nav&gt;</code>, <code>&lt;main&gt;</code>).</td>
</tr>
<tr>
<td><strong>Comunicação em Tempo Real</strong></td>
<td>Polling contínuo com requisições HTTP AJAX.</td>
<td>Conexões bidirecionais instantâneas com <strong>WebSockets</strong>.</td>
</tr>
</tbody>
</table>
</div>
<h2>5. Exemplo Prático: Mini-Aplicação com Recursos HTML5 no Playground IDE</h2>
<p>O exemplo abaixo integra os pilares do HTML5 em uma única interface: semântica limpa, input moderno e renderização gráfica em tempo real com a API <code>&lt;canvas&gt;</code>:</p>
<div class="wzw-code-wrapper">
<div class="wzw-code-header">
        <span>HTML5 + CSS3 + Canvas API — Vitrine de Recursos Nativos</span><br />
        <span>html5-showcase.html</span>
    </div>
    <div class="wzw-ide-card" id="wzw-code-63077" data-lang="code">
        <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">HTML</span>
                                <span class="wzw-ide-lines-count">110 linhas</span>
            </div>
            <div class="wzw-ide-actions">
                <button type="button" class="wzw-ide-btn wzw-ide-wrap-btn" onclick="wzwToggleCodeWrap('wzw-code-63077', 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-63077', 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;!DOCTYPE</span><span class="wzw-tk-kw"> html</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line"><span class="wzw-tk-tag">&lt;html</span> <span class="wzw-tk-attr">lang</span>=<span class="wzw-tk-str">&quot;pt-BR&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line"><span class="wzw-tk-tag">&lt;head&gt;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;meta</span> <span class="wzw-tk-attr">charset</span>=<span class="wzw-tk-str">&quot;UTF-8&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;meta</span> <span class="wzw-tk-attr">name</span>=<span class="wzw-tk-str">&quot;viewport&quot;</span> <span class="wzw-tk-attr">content</span>=<span class="wzw-tk-str">&quot;width=device-width, initial-scale=1.0&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;title&gt;</span>Demonstração de Recursos Nativos do HTML5<span class="wzw-tk-tag">&lt;/title&gt;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;style&gt;</span></span>
<span class="wzw-code-line">        body {</span>
<span class="wzw-code-line">            font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, sans-serif;</span>
<span class="wzw-code-line">            background: #0f172a;</span>
<span class="wzw-code-line">            color: #f8fafc;</span>
<span class="wzw-code-line">            padding: 24px;</span>
<span class="wzw-code-line">            margin: 0;</span>
<span class="wzw-code-line">        }</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">        .container {</span>
<span class="wzw-code-line">            max-width: 800px;</span>
<span class="wzw-code-line">            margin: 0 auto;</span>
<span class="wzw-code-line">        }</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">        .painel-html5 {</span>
<span class="wzw-code-line">            background: #1e293b;</span>
<span class="wzw-code-line">            border: 1px solid #334155;</span>
<span class="wzw-code-line">            border-radius: 16px;</span>
<span class="wzw-code-line">            padding: 28px;</span>
<span class="wzw-code-line">            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);</span>
<span class="wzw-code-line">        }</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">        .campo-grupo {</span>
<span class="wzw-code-line">            display: flex;</span>
<span class="wzw-code-line">            align-items: center;</span>
<span class="wzw-code-line">            gap: 16px;</span>
<span class="wzw-code-line">            margin: 16px 0;</span>
<span class="wzw-code-line">        }</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">        input[type=&quot;color&quot;] {</span>
<span class="wzw-code-line">            width: 48px;</span>
<span class="wzw-code-line">            height: 40px;</span>
<span class="wzw-code-line">            border: none;</span>
<span class="wzw-code-line">            border-radius: 8px;</span>
<span class="wzw-code-line">            cursor: pointer;</span>
<span class="wzw-code-line">            background: none;</span>
<span class="wzw-code-line">        }</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">        canvas {</span>
<span class="wzw-code-line">            background: #0b1120;</span>
<span class="wzw-code-line">            border: 1px solid #334155;</span>
<span class="wzw-code-line">            border-radius: 12px;</span>
<span class="wzw-code-line">            display: block;</span>
<span class="wzw-code-line">            margin-top: 16px;</span>
<span class="wzw-code-line">            width: 100%;</span>
<span class="wzw-code-line">            height: 180px;</span>
<span class="wzw-code-line">        }</span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;/style&gt;</span></span>
<span class="wzw-code-line"><span class="wzw-tk-tag">&lt;/head&gt;</span></span>
<span class="wzw-code-line"><span class="wzw-tk-tag">&lt;body&gt;</span></span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;main</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;container&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;article</span> <span class="wzw-tk-attr">class</span>=<span class="wzw-tk-str">&quot;painel-html5&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">            <span class="wzw-tk-tag">&lt;header&gt;</span></span>
<span class="wzw-code-line">                <span class="wzw-tk-tag">&lt;h2</span> <span class="wzw-tk-attr">style</span>=<span class="wzw-tk-str">&quot;margin-top: 0; color: #38bdf8;&quot;</span><span class="wzw-tk-tag">&gt;</span>Laboratório de APIs Nativas do HTML5<span class="wzw-tk-tag">&lt;/h2&gt;</span></span>
<span class="wzw-code-line">                <span class="wzw-tk-tag">&lt;p</span> <span class="wzw-tk-attr">style</span>=<span class="wzw-tk-str">&quot;color: #94a3b8;&quot;</span><span class="wzw-tk-tag">&gt;</span>Altere a cor nativa e a barra de controle para desenhar dinamicamente no Canvas:<span class="wzw-tk-tag">&lt;/p&gt;</span></span>
<span class="wzw-code-line">            <span class="wzw-tk-tag">&lt;/header&gt;</span></span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">            <span class="wzw-tk-tag">&lt;section&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;campo-grupo&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">                    <span class="wzw-tk-tag">&lt;label</span> <span class="wzw-tk-attr">for</span>=<span class="wzw-tk-str">&quot;seletor-cor&quot;</span><span class="wzw-tk-tag">&gt;</span>Seletor de Cor Nativo (type=&quot;color&quot;):<span class="wzw-tk-tag">&lt;/label&gt;</span></span>
<span class="wzw-code-line">                    <span class="wzw-tk-tag">&lt;input</span> <span class="wzw-tk-attr">type</span>=<span class="wzw-tk-str">&quot;color&quot;</span> <span class="wzw-tk-attr">id</span>=<span class="wzw-tk-str">&quot;seletor-cor&quot;</span> <span class="wzw-tk-attr">value</span>=<span class="wzw-tk-str">&quot;#38bdf8&quot;</span><span class="wzw-tk-tag">&gt;</span></span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">                    <span class="wzw-tk-tag">&lt;label</span> <span class="wzw-tk-attr">for</span>=<span class="wzw-tk-str">&quot;seletor-raio&quot;</span> <span class="wzw-tk-attr">style</span>=<span class="wzw-tk-str">&quot;margin-left: 20px;&quot;</span><span class="wzw-tk-tag">&gt;</span>Raio (type=&quot;range&quot;):<span class="wzw-tk-tag">&lt;/label&gt;</span></span>
<span class="wzw-code-line">                    <span class="wzw-tk-tag">&lt;input</span> <span class="wzw-tk-attr">type</span>=<span class="wzw-tk-str">&quot;range&quot;</span> <span class="wzw-tk-attr">id</span>=<span class="wzw-tk-str">&quot;seletor-raio&quot;</span> <span class="wzw-tk-attr">min</span>=<span class="wzw-tk-str">&quot;10&quot;</span> <span class="wzw-tk-attr">max</span>=<span class="wzw-tk-str">&quot;60&quot;</span> <span class="wzw-tk-attr">value</span>=<span class="wzw-tk-str">&quot;35&quot;</span><span class="wzw-tk-tag">&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-comment">&lt;!-- Elemento Canvas Nativo 2D --&gt;</span></span>
<span class="wzw-code-line">                <span class="wzw-tk-tag">&lt;canvas</span> <span class="wzw-tk-attr">id</span>=<span class="wzw-tk-str">&quot;meu-canvas&quot;</span> <span class="wzw-tk-attr">width</span>=<span class="wzw-tk-str">&quot;600&quot;</span> <span class="wzw-tk-attr">height</span>=<span class="wzw-tk-str">&quot;180&quot;</span><span class="wzw-tk-tag">&gt;</span><span class="wzw-tk-tag">&lt;/canvas&gt;</span></span>
<span class="wzw-code-line">            <span class="wzw-tk-tag">&lt;/section&gt;</span></span>
<span class="wzw-code-line">        <span class="wzw-tk-tag">&lt;/article&gt;</span></span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;/main&gt;</span></span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;script&gt;</span></span>
<span class="wzw-code-line">        const canvas = document.getElementById(&quot;meu-canvas&quot;);</span>
<span class="wzw-code-line">        const ctx = canvas.getContext(&quot;2d&quot;);</span>
<span class="wzw-code-line">        const inputCor = document.getElementById(&quot;seletor-cor&quot;);</span>
<span class="wzw-code-line">        const inputRaio = document.getElementById(&quot;seletor-raio&quot;);</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">        function desenhar() {</span>
<span class="wzw-code-line">            <span class="wzw-tk-comment">// Limpa o canvas a cada atualização</span></span>
<span class="wzw-code-line">            ctx.clearRect(0, 0, canvas.width, canvas.height);</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">            <span class="wzw-tk-comment">// Desenha um círculo com o contexto 2D nativo do HTML5</span></span>
<span class="wzw-code-line">            ctx.beginPath();</span>
<span class="wzw-code-line">            ctx.arc(canvas.width / 2, canvas.height / 2, inputRaio.value, 0, Math.PI * 2);</span>
<span class="wzw-code-line">            ctx.fillStyle = inputCor.value;</span>
<span class="wzw-code-line">            ctx.fill();</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">            <span class="wzw-tk-comment">// Adiciona texto estilizado dentro do canvas</span></span>
<span class="wzw-code-line">            ctx.fillStyle = &quot;#ffffff&quot;;</span>
<span class="wzw-code-line">            ctx.font = &quot;bold 14px sans-serif&quot;;</span>
<span class="wzw-code-line">            ctx.textAlign = &quot;center&quot;;</span>
<span class="wzw-code-line">            ctx.fillText(&quot;HTML5 Canvas 2D Nativo&quot;, canvas.width / 2, (canvas.height / 2) + 5);</span>
<span class="wzw-code-line">        }</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">        inputCor.addEventListener(&quot;input&quot;, desenhar);</span>
<span class="wzw-code-line">        inputRaio.addEventListener(&quot;input&quot;, desenhar);</span>
<span class="wzw-code-line">&nbsp;</span>
<span class="wzw-code-line">        <span class="wzw-tk-comment">// Renderiza na carga da tela</span></span>
<span class="wzw-code-line">        desenhar();</span>
<span class="wzw-code-line">    <span class="wzw-tk-tag">&lt;/script&gt;</span></span>
<span class="wzw-code-line"><span class="wzw-tk-tag">&lt;/body&gt;</span></span>
<span class="wzw-code-line"><span class="wzw-tk-tag">&lt;/html&gt;</span></span>
</code></pre>
            <textarea class="wzw-ide-raw" aria-hidden="true" tabindex="-1" readonly>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;pt-BR&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Demonstração de Recursos Nativos do HTML5&lt;/title&gt;
    &lt;style&gt;
        body {
            font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, sans-serif;
            background: #0f172a;
            color: #f8fafc;
            padding: 24px;
            margin: 0;
        }

        .container {
            max-width: 800px;
            margin: 0 auto;
        }

        .painel-html5 {
            background: #1e293b;
            border: 1px solid #334155;
            border-radius: 16px;
            padding: 28px;
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
        }

        .campo-grupo {
            display: flex;
            align-items: center;
            gap: 16px;
            margin: 16px 0;
        }

        input[type=&quot;color&quot;] {
            width: 48px;
            height: 40px;
            border: none;
            border-radius: 8px;
            cursor: pointer;
            background: none;
        }

        canvas {
            background: #0b1120;
            border: 1px solid #334155;
            border-radius: 12px;
            display: block;
            margin-top: 16px;
            width: 100%;
            height: 180px;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

    &lt;main class=&quot;container&quot;&gt;
        &lt;article class=&quot;painel-html5&quot;&gt;
            &lt;header&gt;
                &lt;h2 style=&quot;margin-top: 0; color: #38bdf8;&quot;&gt;Laboratório de APIs Nativas do HTML5&lt;/h2&gt;
                &lt;p style=&quot;color: #94a3b8;&quot;&gt;Altere a cor nativa e a barra de controle para desenhar dinamicamente no Canvas:&lt;/p&gt;
            &lt;/header&gt;

            &lt;section&gt;
                &lt;div class=&quot;campo-grupo&quot;&gt;
                    &lt;label for=&quot;seletor-cor&quot;&gt;Seletor de Cor Nativo (type=&quot;color&quot;):&lt;/label&gt;
                    &lt;input type=&quot;color&quot; id=&quot;seletor-cor&quot; value=&quot;#38bdf8&quot;&gt;

                    &lt;label for=&quot;seletor-raio&quot; style=&quot;margin-left: 20px;&quot;&gt;Raio (type=&quot;range&quot;):&lt;/label&gt;
                    &lt;input type=&quot;range&quot; id=&quot;seletor-raio&quot; min=&quot;10&quot; max=&quot;60&quot; value=&quot;35&quot;&gt;
                &lt;/div&gt;

                &lt;!-- Elemento Canvas Nativo 2D --&gt;
                &lt;canvas id=&quot;meu-canvas&quot; width=&quot;600&quot; height=&quot;180&quot;&gt;&lt;/canvas&gt;
            &lt;/section&gt;
        &lt;/article&gt;
    &lt;/main&gt;

    &lt;script&gt;
        const canvas = document.getElementById(&quot;meu-canvas&quot;);
        const ctx = canvas.getContext(&quot;2d&quot;);
        const inputCor = document.getElementById(&quot;seletor-cor&quot;);
        const inputRaio = document.getElementById(&quot;seletor-raio&quot;);

        function desenhar() {
            // Limpa o canvas a cada atualização
            ctx.clearRect(0, 0, canvas.width, canvas.height);

            // Desenha um círculo com o contexto 2D nativo do HTML5
            ctx.beginPath();
            ctx.arc(canvas.width / 2, canvas.height / 2, inputRaio.value, 0, Math.PI * 2);
            ctx.fillStyle = inputCor.value;
            ctx.fill();

            // Adiciona texto estilizado dentro do canvas
            ctx.fillStyle = &quot;#ffffff&quot;;
            ctx.font = &quot;bold 14px sans-serif&quot;;
            ctx.textAlign = &quot;center&quot;;
            ctx.fillText(&quot;HTML5 Canvas 2D Nativo&quot;, canvas.width / 2, (canvas.height / 2) + 5);
        }

        inputCor.addEventListener(&quot;input&quot;, desenhar);
        inputRaio.addEventListener(&quot;input&quot;, desenhar);

        // Renderiza na carga da tela
        desenhar();
    &lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</textarea>
        </div>
    </div>
    
<div class="wzw-playground-action-bar">
        <span class="wzw-playground-desc">Experimente este laboratório interativo diretamente no nosso ambiente de código:</span><br />
        <a href="/web-academy/playground-web/" class="wzw-btn-playground" target="_blank" rel="noopener">⚡ Testar no Playground IDE</a>
    </div>
</div>
<h2>6. O Que É o Conceito de &#8220;Living Standard&#8221;? Haverá um HTML6?</h2>
<p>Uma das perguntas mais frequentes de quem estuda a evolução da web é: <em>&#8220;Quando será lançado o HTML6?&#8221;</em> A resposta oficial da indústria é: <strong>nunca</strong>.</p>
<p>O WHATWG adotou o modelo de <strong>Living Standard (Padrão Vivo)</strong>. Isso significa que a linguagem não é mais congelada em versões estanques como era antigamente (HTML 2.0, 3.2, 4.01). O HTML é uma especificação contínua e viva, que recebe novas tags, métodos e melhorias incrementais todos os meses, conforme os navegadores implementam e testam novos recursos.</p>
<div class="wzw-callout wzw-callout-pro">
    <span class="wzw-callout-icon">🚀</span></p>
<div class="wzw-callout-text">
        <strong>Próximo Passo Didático:</strong> Agora que você conhece o panorama geral do HTML5, na <strong>Lição 28: Suporte de Navegadores ao HTML5</strong>, aprenderemos como auditar a compatibilidade de recursos modernos com o <em>Can I Use</em>, como utilizar bibliotecas de detecção como <em>Modernizr</em> e como garantir que usuários de versões legadas recebam polyfills adequados.
    </div>
</div>
<p>O post <a href="https://webzoneware.com/web-academy/curso-html/introducao-ao-html5-novidades/">Introdução ao HTML5: O Que Mudou e Novidades | 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/introducao-ao-html5-novidades/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
