Exemplos Interativos de HTML e CSS - Parte 4

Capítulos 61 a 82

Ir para a Parte 3 (40..60) Ir para a Parte 5 (80..100)

Capítulo 61: Restrições de Data com Atributos Min e Max

Você pode usar os atributos min e max para limitar as datas inseridas em um campo de entrada date.

Exemplos de Código

<form>
  <label for="datemax">Data (antes de 1980-01-01):</label>
  <input type="date" id="datemax" name="datemax" max="1979-12-31"><br><br>
  <label for="datemin">Data (depois de 2000-01-01):</label>
  <input type="date" id="datemin" name="datemin" min="2000-01-02">
</form>
      

Exemplo Interativo: Verificando Datas


Resumo do Capítulo

Capítulo 62: Tipo de Entrada Data/Hora Local

O datetime-local permite que o usuário selecione uma data e hora local, sem fuso horário.

<form>
  <label for="birthdaytime">Aniversário (data e hora):</label>
  <input type="datetime-local" id="birthdaytime" name="birthdaytime">
</form>
      

Exemplo Interativo: Seletor Data/Hora Local


Resumo do Capítulo

Capítulo 63: Tipo de Entrada E-mail e Imagem

O email valida endereços de e-mail e o image permite usar uma imagem como botão de envio.

<form>
  <label for="email63">Digite seu e-mail:</label>
  <input type="email" id="email63" name="email">
</form>

<form>
  <input type="image" src="https://via.placeholder.com/48x48?text=Enviar" alt="Enviar" width="48" height="48">
</form>
      

Exemplo Interativo: Validação de E-mail


Resumo do Capítulo

Capítulo 64: Tipo de Entrada Arquivo e Oculto

O file permite selecionar arquivos para upload e o hidden armazena valores sem exibição visual.

<form>
  <label for="myfile">Selecione um arquivo:</label>
  <input type="file" id="myfile" name="myfile" multiple>
</form>

<form>
  <input type="hidden" id="custId" name="custId" value="3487">
</form>
      

Exemplo Interativo: Upload Simulado e Valor Oculto



Resumo do Capítulo

Capítulo 65: Tipo de Entrada Mês e Número

O month permite selecionar um mês e ano, enquanto o number coleta valores numéricos.

<form>
  <label for="bdaymonth">Aniversário (mês e ano):</label>
  <input type="month" id="bdaymonth" name="bdaymonth"><br><br>
  <label for="num65">Número:</label>
  <input type="number" id="num65" name="num65" value="10">
</form>
      

Exemplo Interativo: Mês e Número



Resumo do Capítulo

Capítulo 66: Restrições de Entrada

Utilize atributos como min, max, step, pattern e placeholder para controlar e validar os dados inseridos pelo usuário.

<form>
  <label for="quantity">Quantidade (0 a 100, passo 10):</label>
  <input type="number" id="quantity" name="quantity" min="0" max="100" step="10" value="30">
</form>
      

Exemplo Interativo: Validação Numérica


Resumo do Capítulo

Capítulo 67: Faixa e Pesquisa de Tipo de Entrada

O range cria um controle deslizante para selecionar valores e o search é destinado a campos de pesquisa.

<form>
  <label for="vol">Volume:</label>
  <input type="range" id="vol" name="vol" min="0" max="100">
</form>

<form>
  <label for="gsearch">Pesquisar:</label>
  <input type="search" id="gsearch" name="gsearch">
</form>
      

Exemplo Interativo: Controle de Faixa e Pesquisa


50

Resumo do Capítulo

Capítulo 68: Tipos de Entrada Tel, Tempo e URL

Esses tipos garantem que o usuário insira dados no formato correto: telefone, tempo e URL.

<form>
  <label for="phone68">Telefone:</label>
  <input type="tel" id="phone68" name="phone" placeholder="123-45-678"><br><br>
  <label for="time68">Tempo:</label>
  <input type="time" id="time68" name="time"><br><br>
  <label for="url68">URL:</label>
  <input type="url" id="url68" name="url" placeholder="https://exemplo.com">
</form>
      

Exemplo Interativo: Telefone, Tempo e URL




Resumo do Capítulo

Capítulo 69: Tipo de Entrada Semana

O week permite que o usuário selecione uma semana e um ano.

<form>
  <label for="week69">Selecione uma semana:</label>
  <input type="week" id="week69" name="week">
</form>
      

Exemplo Interativo: Seleção de Semana


Resumo do Capítulo

Capítulo 70: Atributos do Elemento <input>

Atributos como value, readonly, disabled, size e maxlength controlam os campos de entrada.

<form>
  <label for="fname70">First name:</label><br>
  <input type="text" id="fname70" name="fname" value="John" size="50" maxlength="50">
</form>
      

Exemplo Interativo: Campo com Valor Padrão


Resumo do Capítulo

Capítulo 71: Atributos min, max, multiple, pattern e placeholder

Esses atributos validam e orientam a entrada do usuário.

<form>
  <label for="country_code">Código do país (3 letras):</label>
  <input type="text" id="country_code" name="country_code"
         pattern="[A-Za-z]{3}" title="Três letras" placeholder="Ex: BRA">
</form>
      

Exemplo Interativo: Validação com Pattern


Resumo do Capítulo

Capítulo 72: Atributos required, step, autofocus e height/width

Esses atributos melhoram a experiência do usuário, tornando campos obrigatórios, definindo intervalos e configurando foco e dimensões (para inputs de imagem).

<form>
  <label for="fname72">First name:</label><br>
  <input type="text" id="fname72" name="fname" autofocus><br>
  <label for="pin72">PIN (4 dígitos):</label><br>
  <input type="number" id="pin72" name="pin" min="0" max="9999" step="1" size="4">
</form>
      

Exemplo Interativo: Campo Numérico


Resumo do Capítulo

Capítulo 73: Atributos list e autocomplete

O atributo list vincula um campo a um conjunto de opções do <datalist>; autocomplete ativa ou desativa sugestões automáticas.

<form>
  <input list="browsers73" id="browser73" placeholder="Digite ou escolha">
  <datalist id="browsers73">
    <option value="Edge">
    <option value="Firefox">
    <option value="Chrome">
    <option value="Opera">
    <option value="Safari">
  </datalist>
</form>
      

Exemplo Interativo: Datalist e Autocomplete


Resumo do Capítulo

Capítulo 74: O Elemento HTML <canvas>

O <canvas> permite desenhar gráficos dinamicamente com JavaScript.

<canvas id="canvas74" width="300" height="150" style="border:1px solid #000;"></canvas>
<script>
  var c = document.getElementById("canvas74");
  var ctx = c.getContext("2d");
  ctx.fillStyle = "#FF0000";
  ctx.fillRect(20, 20, 150, 100);
</script>
      

Exemplo Interativo: Desenhar Retângulo


<canvas id="canvas74_inter" width="300" height="150" style="border:1px solid #000;"></canvas>

Resumo do Capítulo

Capítulo 75: Exemplos Avançados de Desenho com <canvas>

Veja exemplos avançados como gradientes e efeitos no canvas.

// Exemplo de gradiente linear:
var c = document.getElementById("canvas75");
var ctx = c.getContext("2d");
var grd = ctx.createLinearGradient(0, 0, c.width, 0);
grd.addColorStop(0, "red");
grd.addColorStop(1, "white");
ctx.fillStyle = grd;
ctx.fillRect(10, 10, c.width - 20, c.height - 20);
      

Exemplo Interativo: Gradiente no Canvas

<canvas id="canvas75" width="300" height="150" style="border:1px solid #000;"></canvas>

Resumo do Capítulo

Capítulo 76: Trabalhando com SVG (Scalable Vector Graphics)

O SVG permite criar gráficos vetoriais escaláveis sem perda de qualidade.

<svg width="400" height="120">
  <rect x="10" y="10" width="200" height="100" stroke="red" stroke-width="6" fill="blue" />
</svg>
      

Exemplo Interativo: Alterar Cor do Retângulo SVG


<svg id="svg76" width="400" height="120"> <rect id="rect76" x="10" y="10" width="200" height="100" stroke="red" stroke-width="6" fill="blue" /> </svg>

Resumo do Capítulo

Capítulo 77: Trabalhando com o Elemento <video>

O elemento <video> permite incorporar vídeos na página com controles.

<video id="video77" width="320" height="240" controls>
  <source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
  <source src="https://www.w3schools.com/html/mov_bbb.ogg" type="video/ogg">
  Seu navegador não suporta o vídeo.
</video>
      

Exemplo Interativo: Play/Pause do Vídeo


Resumo do Capítulo

Capítulo 78: Trabalhando com o Elemento <audio>

O elemento <audio> é usado para reproduzir arquivos de áudio.

<audio id="audio78" controls>
  <source src="https://www.w3schools.com/html/horse.mp3" type="audio/mpeg">
  <source src="https://www.w3schools.com/html/horse.ogg" type="audio/ogg">
  Seu navegador não suporta o áudio.
</audio>
      

Exemplo Interativo: Play/Pause do Áudio


Resumo do Capítulo

Capítulo 79: Tornar um Elemento Arrastável

Utilize o atributo draggable="true" e os eventos ondragstart, ondragover e ondrop para permitir que elementos sejam arrastados e soltos.

<div id="div79" ondrop="drop79(event)" ondragover="allowDrop79(event)" style="width:200px; height:100px; border:1px solid black;">
  Solte aqui
</div>

<img id="drag79" src="https://via.placeholder.com/200x100?text=Drag+Me" draggable="true" ondragstart="drag79(event)" width="200" height="100">

<script>
function allowDrop79(ev) {
  ev.preventDefault();
}
function drag79(ev) {
  ev.dataTransfer.setData("text", ev.target.id);
}
function drop79(ev) {
  ev.preventDefault();
  var data = ev.dataTransfer.getData("text");
  ev.target.appendChild(document.getElementById(data));
}
</script>
      

Exemplo Interativo: Arraste e Solte

Solte aqui

Resumo do Capítulo

Capítulo 80: Trabalhando com a API de Armazenamento Web HTML

A API de Armazenamento Web permite que você armazene dados localmente no navegador usando localStorage e sessionStorage.

// Exemplo com localStorage
localStorage.setItem("nome80", "João");
document.getElementById("resultado80").innerHTML = localStorage.getItem("nome80");
      

Exemplo Interativo: Salvar Nome


Resumo do Capítulo

Capítulo 81: Contador com sessionStorage

Crie um contador de cliques que é reiniciado a cada sessão usando sessionStorage.

if (sessionStorage.clicks) {
  sessionStorage.clicks = Number(sessionStorage.clicks) + 1;
} else {
  sessionStorage.clicks = 1;
}
document.getElementById("resultado81").innerHTML = "Você clicou " + sessionStorage.clicks + " vez(es).";
      

Exemplo Interativo: Contador de Cliques

Resumo do Capítulo

Capítulo 82: Trabalhando com Web Workers em HTML

Web Workers permitem que scripts sejam executados em segundo plano, sem bloquear a interface do usuário.

<!-- Exemplo com Web Worker usando Blob -->
<script>
  var worker82;
  function createWorker82() {
    var blob = new Blob([`
      var i = 0;
      function timedCount() {
        i++;
        postMessage("Contador: " + i);
        setTimeout(timedCount, 500);
      }
      timedCount();
    `], { type: "application/javascript" });
    return new Worker(URL.createObjectURL(blob));
  }
  
  function startWorker82() {
    if (typeof(Worker) !== "undefined") {
      if (typeof(worker82) == "undefined") {
        worker82 = createWorker82();
      }
      worker82.onmessage = function(event) {
        document.getElementById("outputWorker82").innerHTML = "Worker diz: " + event.data;
      };
    } else {
      document.getElementById("outputWorker82").innerHTML = "Web Workers não são suportados.";
    }
  }
  
  function stopWorker82() {
    if (worker82) {
      worker82.terminate();
      worker82 = undefined;
      document.getElementById("outputWorker82").innerHTML = "Worker parado.";
    }
  }
</script>
      

Exemplo Interativo: Web Worker

Resumo do Capítulo

Sumário (Parte 4)