Apostila_ Fundamentos de Front-End (HTML, Css, Java Script)
Apostila_ Fundamentos de Front-End (HTML, Css, Java Script)
CSS e JavaScript
Objetivo: apresentar conceitos essenciais para começar no desenvolvimento front-end, com exemplos
práticos e um mini-projeto.
Sumário
1. Introdução rápida
2. HTML — estrutura da página
3. Elementos semânticos importantes
4. Formulários e acessibilidade
5. CSS — estilos e seletores
6. Modelo de caixa (box model) e layout (Flexbox & Grid)
7. Design responsivo
8. JavaScript — conceitos básicos
9. DOM, eventos e fetch
10. Mini-projeto, dicas e recursos
1. Introdução rápida
O front-end é a parte da aplicação com a qual o usuário interage — a combinação de HTML (estrutura),
CSS (estilo) e JavaScript (comportamento). Nesta apostila você verá a base necessária para montar
páginas estáticas e adicionar interatividade básica.
Exemplo mínimo:
<!doctype html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Minha Página</title>
</head>
<body>
1
<header>
<h1>Bem-vindo</h1>
</header>
<main>
<p>Conteúdo principal.</p>
</main>
<footer>
<p>© 2025</p>
</footer>
</body>
</html>
Boas práticas: - Use lang , charset e viewport . - Prefira elementos semânticos ( header ,
main , article , section , nav , footer ). - Mantenha HTML limpo e acessível (atributos alt ,
title , aria-* ).
Exemplo de navegação:
<nav>
<ul>
<li><a href="#inicio">Início</a></li>
<li><a href="#sobre">Sobre</a></li>
<li><a href="#contato">Contato</a></li>
</ul>
</nav>
4. Formulários e acessibilidade
Campos básicos:
<label for="email">Email</label>
2
<input id="email" name="email" type="email" required>
<button type="submit">Enviar</button>
</form>
Acessibilidade: - Use label ligado ao input ( for / id ). - Proporcione feedback claro para erros. -
Considere aria-* quando necessário.
Como incluir: - Inline ( style no elemento) — evite. - Interno ( <style> no head ) — útil para testes.
- Externo ( link rel="stylesheet" href="styles.css" ) — recomendado.
Exemplo básico:
/* styles.css */
body {
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica
Neue", Arial;
line-height: 1.5;
margin: 0;
}
header { background: #f5f5f5; padding: 1rem; }
h1 { font-size: 1.5rem; }
/* Seletores */
.container > p { margin-bottom: 1rem; }
#menu li.active { font-weight: bold; }
Seletores comuns: - Elemento: p . - Classe: .btn . - ID: #nav (use com parcimônia). - Atributo:
input[type="text"] . - Combinadores: .card > .title , .list li + li .
.box {
width: 200px;
padding: 10px;
border: 1px solid #ccc;
3
margin: 20px;
}
.container {
display: flex;
gap: 1rem;
align-items: center; /* cross axis */
justify-content: space-between; /* main axis */
}
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 1rem;
}
Quando usar: - Flexbox: alinhamento de itens em uma linha/coluna. - Grid: layout de página mais
complexo (duas dimensões).
7. Design responsivo
Técnicas essenciais: - Meta viewport (já visto). - Media queries:
Sintaxe básica:
// variáveis
let nome = 'João';
4
const PI = 3.14;
// função
function saudacao(n) {
return `Olá, ${n}!`;
}
// arrow function
const soma = (a, b) => a + b;
Conceitos importantes: - Tipagem dinâmica. - Escopos ( var , let , const ). - Funções, arrays,
objetos. - Promises/async-await para operações assíncronas.
Selecionar elementos:
Eventos:
// usando async/await
async function carregarDados() {
try {
const res = await fetch('https://api.exemplo.com/dados');
if (!res.ok) throw new Error('Erro na requisição');
const data = await res.json();
console.log(data);
} catch (err) {
5
console.error(err);
}
}
JS (lógica resumida):
btn.addEventListener('click', () => {
const texto = input.value.trim();
if (!texto) return;
const li = document.createElement('li');
li.textContent = texto;
li.addEventListener('click', () => li.classList.toggle('feito'));
ul.appendChild(li);
input.value = '';
});
6
Recursos recomendados
• MDN Web Docs — referência de HTML/CSS/JS
• CanIUse — compatibilidade de recursos
• Cursos interativos: freeCodeCamp, Codecademy
Glossário rápido
• DOM: Document Object Model
• HTTP: protocolo de transferência
• API: interface de programação
• Responsive: design que se adapta a telas
Fim.
Se quiser, adapto o nível (mais básico ou mais avançado), adiciono exercícios resolvidos, ou gero um PDF
pronto para impressão.