Exemplos Interativos de HTML e CSS - Parte 5

Capítulos 83 a 100

Parte 4 (60–80) Parte 6 (100-130)

Capítulo 83: Validação de Formulários com JavaScript

Aprenda a utilizar a Constraint Validation API e validações personalizadas para garantir que os dados do formulário estejam corretos.

<form id="form83">
  <label for="username83">Username (3 a 10 letras):</label>
  <input type="text" id="username83" name="username" pattern="[A-Za-z]{3,10}" required>
  <input type="submit" value="Enviar">
</form>
      

Exemplo Interativo: Validação Personalizada

Resumo do Capítulo

Capítulo 84: Imagens Responsivas: <picture>, srcset e sizes

Os elementos e atributos <picture>, srcset e sizes permitem exibir imagens apropriadas para diferentes tamanhos de tela e resoluções.

<picture>
  <source media="(min-width: 650px)" srcset="https://via.placeholder.com/800x600">
  <source media="(min-width: 465px)" srcset="https://via.placeholder.com/600x450">
  <img src="https://via.placeholder.com/400x300" alt="Imagem Responsiva">
</picture>
      

Exemplo Interativo: Alterar Tamanho da Tela

Selecione uma "largura de tela" para simular:


<picture> <source media="(min-width: 650px)" srcset="https://via.placeholder.com/800x600"> <source media="(min-width: 465px)" srcset="https://via.placeholder.com/600x450"> <img src="https://via.placeholder.com/400x300" alt="Imagem Responsiva"> </picture>

Resumo do Capítulo

Capítulo 85: Acessibilidade com ARIA

As especificações ARIA (Accessible Rich Internet Applications) melhoram a acessibilidade dos elementos HTML, definindo papéis e propriedades para usuários com necessidades especiais.

<div role="navigation" aria-label="Menu Principal">
  <a href="#home">Home</a>
  <a href="#about">Sobre</a>
</div>
      

Exemplo Interativo: Simulador ARIA


Resumo do Capítulo

Capítulo 86: CSS Grid Layout

O CSS Grid Layout permite criar layouts complexos em duas dimensões (linhas e colunas) de forma simples.

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.item {
  background-color: #b0e0e6;
  padding: 20px;
  text-align: center;
}
      

Exemplo Interativo: Gerador de Grid


Resumo do Capítulo

Capítulo 87: CSS Flexbox

O Flexbox organiza itens em uma única dimensão (linha ou coluna), facilitando a criação de layouts responsivos.

.container {
  display: flex;
  justify-content: space-around;
  align-items: center;
}
.item {
  background-color: #ffe4b5;
  padding: 10px;
  margin: 5px;
}
      

Exemplo Interativo: Layout Flexbox


Item 1
Item 2
Item 3

Resumo do Capítulo

Capítulo 88: CSS Animations e Transitions

As transições e animações permitem alterar propriedades CSS de forma suave, criando efeitos visuais dinâmicos.

.box {
  width: 100px;
  height: 100px;
  background: blue;
  transition: background 0.5s;
}
.box:hover {
  background: red;
}
      

Exemplo Interativo: Animação de Cor

Passe o mouse sobre a caixa para ver a transição de cor.

Resumo do Capítulo

Capítulo 89: CSS Variables (Custom Properties)

As variáveis CSS permitem armazenar valores reutilizáveis, facilitando a manutenção e a personalização do estilo.

:root {
  --main-color: blue;
}
.box {
  width: 100px;
  height: 100px;
  background: var(--main-color);
}
      

Exemplo Interativo: Alterar Variável CSS


<div class="box89"></div>

Resumo do Capítulo

Capítulo 90: Media Queries e Design Responsivo

Media queries permitem alterar estilos CSS com base em características do dispositivo, como largura da tela.

@media (max-width: 600px) {
  body { background-color: lightgray; }
}
      

Exemplo Interativo: Simulação de Media Query


Este é o layout padrão.

Resumo do Capítulo

Capítulo 91: CSS Specificity e Ordem de Cascata

A especificidade determina qual regra CSS será aplicada quando há conflitos. Ela é baseada na contagem de seletores de ID, classes e elementos.

/* Exemplo: */
#header { color: red; }       /* Específico */
.nav { color: blue; }         /* Menos específico */
p { color: green; }           /* Pouco específico */
      

Exemplo Interativo: Calculadora de Specificity


Resumo do Capítulo

Capítulo 92: Metodologias CSS: BEM

BEM (Block Element Modifier) é uma convenção de nomenclatura que torna o CSS mais modular e reutilizável.

/* Exemplo BEM */
.block { }
.block__element { }
.block--modifier { }
      

Exemplo Interativo: Gerador de Classes BEM




Resumo do Capítulo

Capítulo 93: CSS Reset e Normalize

Reset e Normalize ajudam a criar uma base consistente de estilos em diferentes navegadores.

/* Exemplo de CSS Reset simples */
* { margin: 0; padding: 0; box-sizing: border-box; }
      

Exemplo Interativo: Alternar Reset

Os estilos foram resetados.

Resumo do Capítulo

Capítulo 94: Otimização de Performance Web: Minificação e Critical CSS

A otimização de performance envolve reduzir o tamanho de arquivos CSS/JS e carregar o CSS crítico primeiro.

/* Exemplo (simulado): Antes e depois da minificação */
body {
    background-color: #ffffff;
    color: #333333;
}
/* Versão minificada: */
body{background:#fff;color:#333}
      

Exemplo Interativo: Minificar CSS (Simulação)


Resumo do Capítulo

Capítulo 95: Introdução a Service Workers e PWAs

Service Workers são scripts que rodam em segundo plano e permitem funcionalidades como cache offline, notificações e atualização de conteúdo, essenciais para Progressive Web Apps (PWAs).

<!-- Exemplo simulado de registro de Service Worker -->
if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/sw.js')
  .then(function(registration) {
    console.log('Service Worker registrado com sucesso.');
  })
  .catch(function(error) {
    console.log('Registro falhou: ', error);
  });
}
      

Exemplo Interativo: Simulação de Registro de Service Worker

Resumo do Capítulo

Capítulo 96: Fetch API e AJAX

A Fetch API permite fazer requisições HTTP assíncronas para buscar dados e atualizar a página sem recarregar.

fetch("https://jsonplaceholder.typicode.com/posts/1")
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error("Erro:", error));
      

Exemplo Interativo: Buscar Dados com Fetch


Resumo do Capítulo

Capítulo 97: Introdução aos WebSockets

WebSockets permitem comunicação bidirecional em tempo real entre o cliente e o servidor.

// Exemplo de criação de conexão WebSocket (simulado)
var ws = new WebSocket("wss://echo.websocket.org");
ws.onopen = function() {
  ws.send("Olá, WebSocket!");
};
ws.onmessage = function(event) {
  console.log("Mensagem recebida: " + event.data);
};
      

Exemplo Interativo: Simulação de WebSocket

Conexão simulada: Mensagem de exemplo.

Resumo do Capítulo

Capítulo 98: Recursos do JavaScript ES6+

O ES6 introduziu recursos como let, const, funções arrow, template literals, e mais, que facilitam a escrita e manutenção do código.

// Exemplo de template literals e arrow functions
const nome = "Maria";
const saudacao = () => `Olá, ${nome}!`;
console.log(saudacao());
      

Exemplo Interativo: Teste de ES6


Resumo do Capítulo

Capítulo 99: Progressive Enhancement e Graceful Degradation

Esses conceitos garantem que a página funcione bem em diferentes navegadores, adicionando melhorias onde possível ou degradando de forma adequada.

/* Exemplo: CSS básico com melhoria progressiva */
body { font-size: 16px; }
@media (min-width: 600px) {
  body { font-size: 18px; }
}
      

Exemplo Interativo: Seleção de Modo de Exibição


Resumo do Capítulo

Capítulo 100: Conclusão e Próximos Passos

Parabéns por concluir estes 100 capítulos! Agora é hora de aplicar seus conhecimentos e continuar aprendendo sobre desenvolvimento web avançado.

<!-- Exemplo de mensagem de conclusão -->
<h2>Obrigado por aprender HTML, CSS e JavaScript!</h2>
<p>Continue praticando e explore novas tecnologias como frameworks e PWAs.</p>
      

Exemplo Interativo: Mensagem Final


Resumo do Capítulo

Sumário (Parte 5)