Fundamentos de HTML e CSS para Desenvolvimento Web

Introdução aos Pilares do Desenvolvimento Web Frontend

O desenvolvimento frontend envolve a criação da interface visual e interativa de websites. Três tecnologias essenciais formam a base desta área:

  • HTML (HyperText Markup Language): Define a estrutura e o conteúdo semântico de uma página web. É o esqueleto de qualquer site.
  • CSS (Cascading Style Sheets): Responsável pela apresnetação visual dos elemantos HTML, controlando cores, fontes, layouts e animações. É a "roupagem" do site.
  • JavaScript: Adiciona interatividade e dinamismo às páginas, permitindo que os usuários interajam com o site de diversas formas. É o "comportamento" do site.

Compreendendo HTML (HyperText Markup Language)

HTML, ou Linguagem de Marcação de Hipertexto, é a espinha dorsal de qualquer página da web. O termo "hipertexto" indica que o texto pode conter links para outros recursos, enquanto "linguagem de marcação" refere-se ao uso de tags para estruturar o conteúdo.

As tags HTML são elementos pré-definidos (como <p> para parágrafos ou <img> para imagens) que são interpretadas pelos navegadores para exibir a página corretamente. Não é possível criar tags personalizadas; deve-se utilizar o conjunto padrão.

Elementos HTML Comuns

Estrutura Básica de Documento

Todo documento HTML segue uma estrutura fundamental:


<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Título da Página</title>
</head>
<body>
    <!-- Conteúdo visível da página aqui -->
</body>
</html>

  • ``: Declara o tipo de documento, garantindo o modo de renderização padrão do navegador.
  • <html lang="pt-BR">: O elemento raiz do documento, especificando o idioma para acessibilidade e SEO.
  • <head>: Contém metadados sobre a página (não visíveis diretamente), como o título, codificação de caracteres e links para folhas de estilo.
  • <body>: Abriga todo o conteúdo visível da página.

Tags de Título e Parágrafo

Os títulos são definidos por tags <h1> a <h6>, onde <h1> é o mais importante. Parágrafos de texto são marcados com a tag <p>. Para uma linha horizontal, utilize <hr>.

<h1>Título Principal da Notícia</h1>
<h2>Subtítulo Importante</h2>
<p>Este é o primeiro parágrafo do artigo, contendo informações relevantes sobre o tema abordado.</p>
<hr>
<p>Um segundo parágrafo pode seguir, separando as seções ou ideias.</p>

Imagens e Multimídia

Para incluir imagens, usa-se a tag <img>. O atributo src especifica o caminho da imagem, que pode ser absoluto (URL completo) ou relativo (baseado na localização do arquivo HTML). width e height controlam as dimensões.

Vídeos são inseridos com <video> e áudios com <audio>. Ambos requerem o atributo src e podem ter controls para exibir os controles de reprodução padrão.

<!-- Exemplo de imagem -->
<img src="caminho/para/imagem.jpg" alt="Descrição da Imagem" width="300" height="200">

<!-- Exemplo de vídeo -->
<video src="caminho/para/video.mp4" controls width="640">
    Seu navegador não suporta a tag de vídeo.
</video>

<!-- Exemplo de áudio -->
<audio src="caminho/para/audio.mp3" controls>
    Seu navegador não suporta a tag de áudio.
</audio>

Hyperlinks

Links são criados com a tag <a>. O atributo href indica o destino do link, e target define como o link será aberto:

  • _self (padrão): Abre na mesma janela/aba.
  • _blank: Abre em uma nova janela/aba.
<a href="https://www.exemplo.com" target="_blank">Visitar Exemplo.com</a>

Tags de Agrupamento Semântico Zero: <div> e <span>

Estas tags são usadas primariamente para agrupar elementos para fins de estilização com CSS, sem adicionar significado semântico ao conteúdo.

  • <div>: É um elemento de bloco, o que significa que ele ocupa toda a largura disponível e força uma quebra de linha antes e depois dele. Pode ter largura e altura definidas.
  • <span>: É um elemento inline, que ocupa apenas o espaço necessário para seu conteúdo e não força quebras de linha. Sua largura e altura são determinadas pelo conteúdo e não podem ser definidas diretamente via CSS.
<div id="container-principal">
    <p>Este é um parágrafo dentro de um <span class="destaque">bloco DIV</span>.</p>
</div>

Formulários HTML

Formulários são essenciais para coletar dados do usuário (registro, login, feedback). A tag <form> encapsula todos os campos. Seus principais atributos são:

  • action: A URL para onde os dados do formulário serão enviados ao serem submetidos.
  • method: O método HTTP usado para enviar os dados (GET ou POST).
    • GET: Anexa os dados à URL (visível, limitado em tamanho).
    • POST: Envia os dados no corpo da requisição (invisível, sem limite de tamanho).

Campos de formulário são definidos por tags como <input> (com vários tipos como text, password, radio, checkbox, file, date, email, submit, reset, button), <select> para listas suspensas e <textarea> para áreas de texto multi-linha. É crucial que cada campo tenha um atributo name para que seus dados sejam enviados.

<form action="/processar-formulario" method="post">
    <label for="nomeUsuario">Nome de Usuário:</label>
    <input type="text" id="nomeUsuario" name="nomeCompleto" required><br><br>

    <label for="senhaAcesso">Senha:</label>
    <input type="password" id="senhaAcesso" name="senha" required><br><br>

    <p>Gênero:</p>
    <label><input type="radio" name="genero" value="M"> Masculino</label>
    <label><input type="radio" name="genero" value="F"> Feminino</label><br><br>

    <p>Interesses:</p>
    <label><input type="checkbox" name="interesses" value="programacao"> Programação</label>
    <label><input type="checkbox" name="interesses" value="design"> Design</label>
    <label><input type="checkbox" name="interesses" value="marketing"> Marketing</label><br><br>

    <label for="arquivo">Upload de Arquivo:</label>
    <input type="file" id="arquivo" name="arquivoUsuario"><br><br>

    <label for="dataNascimento">Data de Nascimento:</label>
    <input type="date" id="dataNascimento" name="dataNasc"><br><br>

    <label for="emailContato">Email:</label>
    <input type="email" id="emailContato" name="emailUser"><br><br>

    <label for="escolaridade">Escolaridade:</label>
    <select id="escolaridade" name="nivelEscolar">
        <option value="">-- Selecione --</option>
        <option value="fundamental">Ensino Fundamental</option>
        <option value="medio">Ensino Médio</option>
        <option value="superior">Ensino Superior</option>
    </select><br><br>

    <label for="comentarios">Comentários:</label><br>
    <textarea id="comentarios" name="comentariosAdicionais" rows="5" cols="40"></textarea><br><br>

    <input type="hidden" name="idSessao" value="12345"> <!-- Campo oculto -->

    <button type="submit">Enviar Formulário</button>
    <button type="reset">Limpar Campos</button>
</form>

Características da Sintaxe HTML

  • HTML é, por natureza, flexível e tolerante a erros.
  • As tags e atributos HTML não são sensíveis a maiúsculas e minúsculas, embora a convenção seja usar minúsculas para boa prática.
  • Os valores dos atributos podem ser delimitados por aspas simples ou duplas.
  • Múltiplos espaços em branco ou quebras de linha são renderizados como um único espaço pelo navegador. Para inserir múltiplos espaços, usa-se a entidade &nbsp; (non-breaking space).

Estilizando Páginas com CSS (Cascading Style Sheets)

CSS é uma linguagem de folhas de estilo usada para descrever a apresentação de um documento HTML, incluindo cores, layout e fontes. Ele permite separar o conteúdo da página de sua apresentação visual, facilitando a manutenção e a consistência do design.

Métodos de Inserção de CSS

Existem três maneiras principais de aplicar estilos CSS a um documento HTML:

  1. Estilo Inline: Aplicado diretamente no atributo style de uma tag HTML. Não é recomendado para grandes projetos devido à dificuldade de manutenção.
  2. Estilo Incorporado (Internal): Definido dentro da tag <style> no <head> do documento HTML. Útil para estilos específicos de uma única página.
  3. Folha de Estilos Externa: O método mais comum e recomendado. Os estilos são escritos em um arquivo .css separado e linkados ao HTML usando a tag <link> no <head>. Facilita a reutilização de estilos em múltiplas páginas.

<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Exemplo de Estilos CSS</title>
    <!-- 2. Estilo Incorporado -->
    <style>
        h1 {
            color: #336699; /* Cor azul escuro */
            font-family: Arial, sans-serif;
        }
        .data-publicacao {
            color: #666;
            font-size: 0.9em;
        }
        #credito-final {
            text-align: right;
            font-style: italic;
        }
    </style>
    <!-- 3. Folha de Estilos Externa (caminho relativo) -->
    <!-- <link rel="stylesheet" href="estilos/estilo_geral.css"> -->
</head>
<body>
    <h1 style="color: purple;">Título do Artigo (Estilo Inline)</h1> <!-- 1. Estilo Inline -->
    <h1>Outro Título (Estilo Incorporado)</h1>
    <p class="data-publicacao">Publicado em: <span>01 de Janeiro de 2024</span></p>
    <p id="credito-final">Desenvolvido por: Nome do Autor</p>
</body>
</html>

Seletores CSS

Seletores são padrões usados para "selecionar" os elementos HTML que você deseja estilizar.

  • Seletor de Tipo (ou Elemento): Seleciona todos os elementos de um tipo específico (ex: p { ... } para todos os parágrafos).
  • Seletor de Classe: Seleciona elementos com um atributo class específico (ex: .minhaClasse { ... }). Um elemento pode ter múltiplas classes.
  • Seletor de ID: Seleciona um único elemento com um atributo id específico (ex: #meuId { ... }). IDs devem ser únicos por página.

A hierarquia de especificidade (ou prioridade) dos seletores é: ID > Classe > Tipo.

Propriedades CSS Essenciais

Algumas propriedades CSS amplamente utilizadas incluem:

  • color: Define a cor do texto. Pode ser especificada por nome (red), código hexadecimal (#FF0000), RGB (rgb(255, 0, 0)), etc.
  • font-size: Controla o tamanho da fonte (ex: 16px, 1.2em).
  • text-decoration: Adiciona ou remove decorações de texto, como sublinhado (underline) ou remoção (none).
  • line-height: Ajusta a altura da linha, impactando o espaçamento vertical entre as linhas de texto.
  • text-indent: Define o recuo da primeira linha de um bloco de texto.
  • text-align: Alinha o texto horizontalmente dentro de seu elemento (left, right, center, justify).

Modelo de Caixa (Box Model) para Layout de Páginas

No design web, todos os elementos HTML são considerados caixas retangulares. O Modelo de Caixa descreve como esses elementos são renderizados e como seu espaço é ocupado na página. Ele é composto por quatro partes:

  1. Conteúdo (Content): A área onde o conteúdo real (texto, imagem, vídeo) do elemento é exibido. Suas dimensões são controladas por width e height.
  2. Preenchimento (Padding): O espaço entre o conteúdo e a borda do elemento. Controlado por padding (ou padding-top, -right, -bottom, -left).
  3. Borda (Border): A linha que envolve o preenchimento e o conteúdo. Controlado por border (ou border-width, border-style, border-color).
  4. Margem (Margin): O espaço externo ao redor da borda, que separa o elemento de outros elementos vizinhos. Controlado por margin (ou margin-top, -right, -bottom, -left).

É possível definir valores para cada lado do padding, border e margin individualmente (ex: padding-top: 10px;).

Exemplo Prático de Layout com HTML e CSS

A seguir, um exemplo que combina a estrutura HTML com estilos CSS para criar um layout básico, demonstrando o modelo de caixa e algumas propriedades de texto.


<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Layout Simples com Modelo de Caixa</title>
    <style>
        body {
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background-color: #f4f4f4;
            margin: 0;
            padding: 20px;
        }
        .container-principal {
            width: 80%; /* 80% da largura da tela */
            margin: 20px auto; /* Margem superior/inferior 20px, laterais automáticas para centralizar */
            padding: 25px; /* Preenchimento interno */
            border: 1px solid #ccc; /* Borda cinza */
            background-color: #fff;
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
        }
        h1 {
            color: #2c3e50;
            text-align: center;
            margin-bottom: 20px;
        }
        p {
            line-height: 1.6; /* Altura da linha para melhor leitura */
            text-indent: 30px; /* Recuo da primeira linha */
            margin-bottom: 15px;
            color: #34495e;
        }
        .data-info {
            display: block; /* Garante que o span seja um bloco */
            text-align: right;
            font-size: 0.85em;
            color: #7f8c8d;
            margin-top: 25px;
            padding-top: 10px;
            border-top: 1px dashed #eee;
        }
        a {
            color: #3498db;
            text-decoration: none; /* Remove sublinhado padrão */
        }
        a:hover {
            text-decoration: underline; /* Adiciona sublinhado ao passar o mouse */
        }
    </style>
</head>
<body>
    <div class="container-principal">
        <h1>Explorando o Desenvolvimento Web</h1>
        <p>O desenvolvimento web é uma área vasta e em constante evolução, que permite a criação de sites e aplicações interativas. Compreender os fundamentos de HTML para a estrutura e CSS para o estilo é o primeiro passo essencial para qualquer aspirante a desenvolvedor frontend.</p>
        <p>Ao dominar esses conceitos, é possível construir interfaces de usuário visualmente atraentes e funcionais, que servem como a base para experiências digitais mais complexas. A prática com diferentes elementos e propriedades é fundamental para solidificar o aprendizado.</p>
        <span class="data-info">Última atualização: 15 de Março de 2024</span>
    </div>
</body>
</html>

Tags: HTML CSS frontend WebStandards BoxModel

Publicado em 10-5 20:56