Como criar seu primeiro site do zero com HTML e CSS
Criar um site do zero é a porta de entrada para o universo do desenvolvimento web. Neste tutorial, você vai aprender a montar um projeto completo baseado no exemplo Top 10 Melhores Jogos do ano, usando as duas principais tecnologias front‑end:
HTML5 para a estrutura semântica
CSS3 para o estilo e responsividade
Ao final, você terá um site completo, pronto para hospedar no GitHub Pages, Netlify ou qualquer outro serviço de hosting.
Passo 1 — Estrutura de arquivos
Crie uma pasta para o projeto (top10-jogos
) e, dentro dela, organize:
top10-jogos/
├── index.html
├── style.css
Passo 2 — Criar template básico HTML e CSS
Abra o
index.html
.Insira a declaração do tipo de documento e as tags principais:
Abra o
style.css
.Insira o seletor universal (*) para aplicar as regras a todos os elementos da página, e evitar inconsistências de margens e paddings entre navegadores.
/* style.css */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', sans-serif;
color: #fff;
background: linear-gradient(135deg, #1a1a2e, #16213e);
min-height: 100vh;
background-attachment: fixed;
background-size: cover;
line-height: 1.6;
padding: 0 20px;
}
Propriedades do *
margin: 0;
→ zera todas as margens externas dos elementos.padding: 0;
→ zera todo o espaçamento interno dos elementos.box-sizing: border-box;
→ faz com que owidth
/height
inclua padding e bordas no cálculo.
Propriedades do body
font-family: 'Segoe UI', sans-serif;
→ define “Segoe UI” como fonte principal e “sans‑serif” como opção secundária.color: #fff;
→ ajusta a cor do texto para branco.background: linear-gradient(135deg, #1a1a2e, #16213e);
→ aplica um gradiente linear de 135° entre dois tons de azul‑escuro.min-height: 100vh;
→ garante que o<body>
tenha, no mínimo, 100% da altura da janela de visualização.background-attachment: fixed;
→ fixa o fundo de forma que ele não se mova ao rolar a página.background-size: cover;
→ faz com que o fundo cubra toda a área disponível, mantendo proporção.line-height: 1.6;
→ define espaçamento entre linhas igual a 1,6 vezes o tamanho da fonte.padding: 0 20px;
→ adiciona 20px de espaçamento interno nas laterais esquerda e direita.
Passo 3 — Configurar o head
Top 10 Melhores Jogos de 2025
<meta charset>
define codificação de caracteres.<meta viewport>
garante responsividade.<title>
aparece na aba do navegador e nos resultados de busca.<link>
conecta ostyle.css
.
Passo 4 — Montar o header
Dentro de <body>
, crie:
Top 10 Melhores Jogos de 2025
E no arquivo do style.css:
header {
text-align: center;
padding: 60px 20px 30px;
background: rgba(0, 0, 0, 0.4);
backdrop-filter: blur(5px);
border-bottom: 2px solid #00f2ff;
}
header h1 {
font-size: 2.5rem;
color: #00f2ff;
}
Propriedades do header
text-align: center;
→ centraliza horizontalmente o conteúdo interno.padding: 60px 20px 30px;
→ insere 60px acima, 20px nas laterais e 30px abaixo do conteúdo.background: rgba(0, 0, 0, 0.4);
→ aplica fundo preto com 40% de opacidade.backdrop-filter: blur(5px);
→ desfoca em 5px o que estiver atrás do elemento.border-bottom: 2px solid #00f2ff;
→ cria uma linha sólida de 2px ciana na base.
Propriedades do header h1
font-size: 2.5rem;
→ ajusta o tamanho da fonte para 2.5 vezes o tamanho base.color: #00f2ff;
→ define a cor do texto como ciano.
Passo 5 — Criar a sessão de um jogo
Nesta etapa, vamos detalhar a marcação HTML de uma seção individual que exibe título, descrição, imagem e vídeo de um jogo.
1. Minecraft
Sandbox de sobrevivência e construção infinito, onde blocos tridimensionais formam um mundo gerado proceduralmente. Continua recebendo atualizações e abriga uma das maiores comunidades do mundo.
E no arquivo do style.css:
.conteudo {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 40px;
max-width: 1000px;
margin: 40px auto;
padding: 0 20px;
}
.jogo {
background: rgba(255, 255, 255, 0.05);
padding: 25px;
border-radius: 12px;
border: 1px solid rgba(255, 255, 255, 0.1);
transition: transform 0.3s ease;
display: flex;
flex-direction: column;
gap: 15px;
}
.jogo:hover {
transform: scale(1.02);
}
.jogo h2 {
color: #ffcb05;
font-size: 1.8rem;
}
.jogo-img {
width: 100%;
border-radius: 8px;
border: 2px solid #00f2ff;
object-fit: cover;
}
.jogo-img {
max-height: 300px;
}
Estilo do container principal:
display: grid;
→ organiza itens em grade.grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
→ cria colunas responsivas que têm no mínimo 300px.gap: 40px;
→ espaço de 40px entre linhas e colunas.max-width: 1000px;
→ limita largura total do container.margin: 40px auto;
→ centraliza horizontalmente e adiciona 40px de margem superior/inferior.padding: 0 20px;
→ 20px de espaço interno nas laterais.
Estilo dos cards de jogo (.jogo
):
background: rgba(255, 255, 255, 0.05);
→ fundo semitransparente para destacar o card.padding: 25px;
→ espaçamento interno ao redor do conteúdo.border-radius: 12px;
→ cantos arredondados no card.border: 1px solid rgba(255, 255, 255, 0.1);
→ borda sutil em torno do card.transition: transform 0.3s ease;
→ animação suave no hover.display: flex; flex-direction: column; gap: 15px;
→ empilha elementos verticalmente com espaçamento.transform: scale(1.02);
→ aplica leve zoom no hover.color: #ffcb05;
→ define o título em tom dourado.font-size: 1.8rem;
→ ajusta o tamanho da fonte do título.width: 100%;
→ faz a mídia preencher todo o espaço horizontal.border-radius: 8px;
→ arredonda cantos de imagem e vídeo.border: 2px solid #00f2ff;
→ borda ciana para destacar a mídia.object-fit: cover;
→ mantém proporção e preenche a caixa.max-height: 300px;
→ limita altura máxima da imagem.
Nota: dentro da tag 'main', crie 10 seções uma para cada jogo exibido no site.
Passo 6 — Adicionar o footer
Adicione ao final do <body>
a marcação do rodapé e o carregamento do seu script:
E no arquivo do style.css:
footer {
text-align: center;
padding: 20px;
font-size: 14px;
background: rgba(0, 0, 0, 0.4);
border-top: 1px solid #00f2ff;
color: #ddd;
}
text-align: center;
→ centraliza o texto horizontalmente.padding: 20px;
→ adiciona 20px de espaço interno em todos os lados.font-size: 14px;
→ define o tamanho da fonte em 14px.background: rgba(0, 0, 0, 0.4);
→ cria um fundo preto com 40% de opacidade.border-top: 1px solid #00f2ff;
→ adiciona uma borda fina ciana na parte superior.color: #ddd;
→ define a cor do texto como cinza claro.
Conclusão
Neste tutorial de como criar seu primeiro site do zero com HTML5, CSS3, vimos como estruturar semanticamente a página com <header>
, <main>
e <footer>
, construir seções de conteúdo responsivas em grid, estilizar com gradientes, texturas e efeitos de hover em CSS.