O CSS
O CSS (Cascading Style Sheets) é uma linguagem de estilo utilizada para definir a aparência visual de documentos HTML. Enquanto o HTML define a estrutura do conteúdo, o CSS define como esse conteúdo será apresentado ao usuário.
Com CSS é possível controlar cores, fontes, espaçamentos, tamanhos, alinhamentos, bordas e diversos outros aspectos visuais de uma página web.
O uso do CSS é essencial no desenvolvimento web moderno pois permite:
- Padronizar o visual de um site.
- Separar estrutura (HTML) da apresentação (CSS).
- Facilitar a manutenção do código.
- Adaptar páginas para diferentes tamanhos de tela (responsividade).
- Melhorar a experiência do usuário (UX) e a acessibilidade.
A imagem apresenta uma comparação entre uma página web sem CSS e a mesma página utilizando CSS. O objetivo é demonstrar como o CSS altera significativamente a aparência visual de um site.
No lado esquerdo, identificado como “Página Web Sem CSS”, vemos uma página simples e sem formatação visual. O conteúdo aparece apenas com a estrutura padrão do HTML: um título grande, um menu com links (“Home”, “Info”, “Contact” e “About Us”) e um parágrafo com texto. Os elementos estão organizados de forma básica, sem cores, alinhamentos especiais ou elementos gráficos, mostrando como os navegadores exibem o HTML sem estilos adicionais.
No lado direito, identificado como “Página Web Com CSS”, a mesma página aparece estilizada. O layout é mais organizado e visualmente agradável, com cores, espaçamentos, tipografia diferenciada e elementos gráficos. O menu está posicionado no topo da página, o banner possui destaque visual e há caixas de conteúdo organizadas. A presença de uma ilustração e o uso de cores verdes ajudam a tornar a interface mais moderna e atrativa.
Essa comparação ilustra claramente o papel do CSS no desenvolvimento web: enquanto o HTML define a estrutura e o conteúdo da página, o CSS é responsável pela aparência visual, organização do layout e melhoria da experiência do usuário.
Formas de incluir CSS no HTML
Existem três maneiras principais de adicionar CSS a uma página HTML.
1) CSS inline (diretamente no elemento)
O CSS é adicionado diretamente na tag HTML por meio do atributo style.
Essa abordagem não é recomendada para projetos maiores, pois dificulta a manutenção.
<p style="color: red;">Texto em vermelho</p>
2) CSS interno
As regras CSS são colocadas dentro de um elemento <style> no
elemento <head> do documento.
<style>
p {
color: blue;
}
</style>
3) CSS externo (boa prática)
As regras CSS são armazenadas em um arquivo separado, geralmente chamado
style.css, e vinculadas ao HTML.
<link rel="stylesheet" href="style.css">
Regras CSS
No CSS, uma regra define como determinados elementos HTML devem ser exibidos na página. Cada regra é formada por um seletor e um conjunto de propriedades. O seletor indica quais elementos do HTML serão afetados, enquanto as propriedades definem quais estilos serão aplicados.
Quando o navegador interpreta o CSS, ele procura no documento HTML os elementos que correspondem ao seletor definido na regra. Assim que esses elementos são identificados, o navegador aplica as propriedades especificadas diretamente nesses elementos.
Em outras palavras, uma regra CSS funciona como uma instrução que diz ao navegador: “para todos os elementos HTML que correspondem a este seletor, aplique os seguintes estilos”.
Cada regra é composta por três partes principais:
- Seletor – identifica quais elementos receberão o estilo.
- Propriedade – define qual característica será modificada.
- Valor – define o valor aplicado à propriedade.
A estrutura básica de uma regra CSS é a seguinte:
seletor {
propriedade: valor;
propriedade: valor;
}
Por exemplo, na regra abaixo o seletor p indica que todos os elementos
<p> do documento HTML devem receber a cor vermelha.
p {
color: red;
}
Quando essa regra é interpretada pelo navegador, todos os parágrafos da página HTML passam a ser exibidos com texto vermelho. Isso demonstra como o CSS atua diretamente sobre os elementos HTML, alterando apenas sua apresentação visual.
Dentro do bloco de regras podemos definir várias propriedades diferentes para o mesmo elemento.
Exemplo:
body {
font-family: Arial;
}
header {
background-color: #28a745;
padding: 20px;
}
Seletores
Os seletores CSS são responsáveis por identificar quais elementos HTML receberão determinadas regras de estilo.
Quando o navegador interpreta o código CSS, ele analisa o seletor e identifica quais elementos do documento HTML correspondem àquele seletor. Em seguida, aplica as propriedades definidas na regra CSS diretamente nesses elementos.
Em outras palavras, o seletor atua como um filtro: ele seleciona determinados elementos HTML e faz com que as regras CSS sejam aplicadas apenas a esses elementos.
Existem diferentes tipos de seletores.
- Seletor por tag – seleciona todos os elementos de uma determinada tag.
- Seletor por classe – seleciona todos os elementos com uma classe específica.
- Seletor por id – seleciona um elemento específico identificado por um ID.
- Seletor de filhos – seleciona elementos que são filhos diretos de outro elemento.
- Seletor de descendentes – seleciona elementos dentro de outro elemento.
Exemplos:
/* seletor por tag. No ex, todos os parágrafos p ficarão com a cor da fonte em azul */
p {
color: blue;
}
/* seletor por classe. No ex, todos os elementos com o atributo classe "destaque" ficarão com a cor da fonte em vermelho */
.destaque {
color: red;
}
/* seletor por id. No ex, o elemento com o atributo id "titulo" ficará com o tamanho da fonte em 24px */
#titulo {
font-size: 24px;
}
Atributos class e id
No HTML, os atributos class e id são utilizados para identificar
elementos dentro de uma página. Eles são muito importantes porque permitem aplicar estilos
CSS específicos ou manipular elementos com JavaScript.
Embora ambos sirvam para identificar elementos, eles possuem objetivos diferentes e são utilizados em situações distintas.
O atributo class
O atributo class é utilizado para identificar um grupo de elementos que
compartilham as mesmas características ou estilos. Vários elementos podem possuir
a mesma classe.
Isso é muito útil quando queremos aplicar o mesmo estilo a vários elementos da página.
<p class="destaque">Este texto está em destaque.</p>
<p class="destaque">Outro texto em destaque.</p>
No CSS, as classes são referenciadas utilizando um ponto (.)
antes do nome da classe.
.destaque {
color: red;
font-weight: bold;
}
Nesse exemplo, todos os elementos que possuem a classe
destaque terão o texto em vermelho e em negrito.
O atributo id
O atributo id é utilizado para identificar um elemento específico
e deve ser único dentro da página. Ou seja, não devemos repetir o mesmo
ID em vários elementos.
Ele é frequentemente utilizado para identificar partes específicas da página, como títulos, seções ou elementos que precisam de tratamento especial.
<h1 id="titulo-principal">Bem-vindo ao site</h1>
No CSS, os IDs são referenciados utilizando o símbolo
# antes do nome do identificador.
#titulo-principal {
color: blue;
text-align: center;
}
Nesse caso, apenas o elemento que possui o
id="titulo-principal" receberá esse estilo.
Diferença entre class e id
| Atributo | Uso | Quantidade de elementos | Seleção no CSS |
|---|---|---|---|
| class | Agrupar elementos com características semelhantes | Pode ser usada em vários elementos | .nome-da-classe |
| id | Identificar um elemento específico | Deve ser único na página | #nome-do-id |
Exemplo combinando class e id
Um elemento pode possuir um id específico e também
pertencer a uma class.
<h2 id="titulo" class="destaque">
Título da Página
</h2>
Nesse caso, o elemento pode receber estilos tanto da classe quanto do ID.
Herança e Especificidade em Regras CSS
Herança
Algumas propriedades CSS são herdadas automaticamente pelos elementos filhos. Isso significa que um elemento pode receber determinados estilos definidos no elemento pai.
Por exemplo:
body {
color: red;
}
Nesse caso, todos os elementos de texto dentro do body
também aparecerão em vermelho, a menos que outro estilo mais específico
seja aplicado.
Especificidade
A especificidade define qual regra CSS será aplicada quando diferentes regras tentam estilizar o mesmo elemento.
De forma geral, a prioridade segue a seguinte ordem:
- ID
- Classe
- Tag
Exemplo:
body {
color: red;
}
.classe-do-p {
color: blue;
}
Nesse caso, o texto que possui a classe classe-do-p
será exibido em azul, pois o seletor de classe possui maior
especificidade do que o seletor por tag.
Exercício Guiado
Avaliação de seletores, herança e especificidade.
Baixe o arquivo aula-selectors.zip e descompacte-o.
A estrutura das pastas e arquivos está organizada como abaixo:
/aula-selectors
index.html
style.css
Avalie o conteúdo do arquivo index.html. Nele, são representados 7 parágrafos textuais, organizados conforme abaixo.
Abra o arquivo index.html no navegador.
Edite o arquivo style.css.
Adicione as seguinte regras CSS abaixo, uma a uma, avaliando o efeito sobre a página HTML.
/* =====================
SELETOR POR TAG
===================== */
p {
color: blue;
}
/* todos os parágrafos ficam azuis */
/* =====================
SELETOR POR CLASSE
===================== */
.destaque {
color: red;
}
/* todos com class="destaque" ficam vermelhos */
/* =====================
SELETOR POR ID
===================== */
#importante {
font-weight: bold;
}
/* apenas o parágrafo com id importante */
/* =====================
DESCENDENTE (A B)
===================== */
.container p {
background-color: lightgray;
}
/* todo p dentro de .container */
/* =====================
FILHO DIRETO (A > B)
===================== */
.container > p {
background-color: yellow;
}
/*
somente p que são
filhos diretos de .container
*/
/* =====================
HERANÇA
===================== */
.container {
font-family: Arial;
}
/*
os parágrafos dentro
herdam a fonte
*/
/* =====================
ESPECIFICIDADE
===================== */
p {
font-size: 14px;
}
.destaque {
font-size: 18px;
}
#importante {
font-size: 22px;
}
/*
prioridade:
tag < class < id
*/
Box Model
No CSS, cada elemento HTML é representado visualmente como um retângulo. Esse conceito é conhecido como Box Model.
O modelo de caixa é composto por quatro partes principais:
- Content – o conteúdo do elemento (texto, imagem etc).
- Padding – espaço interno entre o conteúdo e a borda.
- Border – borda que envolve o elemento.
- Margin – espaço externo entre o elemento e outros elementos.
Controlar essas propriedades é essencial para organizar corretamente o layout de uma página.
margin é um espaço transparente externo entre a borda do elemento e outros elementos (margem
externa). padding é
um espaço transparente interno entre o conteúdo e a borda (margem interna). border é uma
linha que envolve o
padding e o conteúdo e pode ser estilizada.
Propriedades CSS básicas
| Propriedade | O que ela faz |
|---|---|
| color | Define a cor do texto. |
| font-size | Define o tamanho da fonte. |
| font-family | Define a família da fonte utilizada. |
| font-weight | Define o peso da fonte (normal, negrito ou valores numéricos). |
| text-align | Define o alinhamento horizontal do texto. |
| background-color | Define a cor de fundo de um elemento. |
| border | Define uma borda ao redor do elemento. |
| margin | Define o espaço externo entre elementos. |
| padding | Define o espaço interno entre o conteúdo e a borda. |
| width | Define a largura do elemento. |
| height | Define a altura do elemento. |
| text-decoration | Define decorações de texto, como sublinhado. |
| border-radius | Arredonda os cantos da borda. |
Pseudo-classes e Pseudo-elementos
No CSS, além de selecionar elementos diretamente por meio de tags, classes ou IDs, também é possível aplicar estilos com base em estados específicos dos elementos ou em partes específicas deles. Para isso utilizamos as pseudo-classes e os pseudo-elementos.
Pseudo-classes
As pseudo-classes permitem aplicar estilos a um elemento quando ele se encontra em um determinado estado ou condição.
Um exemplo comum ocorre com links ou botões quando o usuário passa o mouse sobre o elemento.
As pseudo-classes são escritas utilizando dois pontos (:) após o seletor.
Exemplo:
a:hover {
color: red;
}
Nesse exemplo, quando o usuário posiciona o cursor do mouse sobre um link
(<a>), a cor do texto muda para vermelho.
Algumas pseudo-classes comuns são:
:hover– aplicada quando o mouse passa sobre o elemento.:active– aplicada quando o elemento está sendo clicado.:focus– aplicada quando um campo de formulário está selecionado.:first-child– seleciona o primeiro filho de um elemento.:last-child– seleciona o último filho de um elemento.
Exemplo com pseudo-classe
button:hover {
background-color: blue;
color: white;
}
Nesse caso, quando o usuário passa o mouse sobre o botão, a cor de fundo e a cor do texto são alteradas.
Pseudo-elementos
Os pseudo-elementos permitem aplicar estilos a partes específicas de um elemento HTML, mesmo que essas partes não existam diretamente no HTML.
Eles são escritos utilizando dois pontos duplos (::).
Alguns pseudo-elementos comuns são:
::before– insere conteúdo antes do elemento.::after– insere conteúdo depois do elemento.::first-letter– seleciona a primeira letra de um texto.::first-line– seleciona a primeira linha de um texto.
Exemplo com pseudo-elemento
p::first-letter {
font-size: 200%;
font-weight: bold;
}
Nesse exemplo, a primeira letra de todos os parágrafos será exibida com tamanho maior e em negrito.
Exemplo inserindo conteúdo
h2::before {
content: "★ ";
color: gold;
}
Nesse caso, um símbolo de estrela será inserido antes de todos os títulos
<h2>, mesmo que esse conteúdo não esteja presente no HTML.
Pseudo-classes e pseudo-elementos são recursos importantes do CSS, pois permitem criar interações visuais e estilizações avançadas sem precisar modificar a estrutura HTML da página.
Exercício
Portal de uma empresa de tecnologia - Parte III
Iremos trabalhar no exercício básica da aula anterior. Use o código feito por você ou copie o exemplo abaixo.
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>TechFuture Soluções Digitais</title>
</head>
<body id="topo">
<!-- Cabeçalho -->
<header>
<h1>TechFuture Soluções Digitais</h1>
<p>Transformando ideias em <b>soluções digitais</b> modernas e eficientes.</p>
<!-- Menu de Navegação -->
<nav>
<ul>
<li><a href="#sobre">Sobre Nós</a></li>
<li><a href="#servicos">Serviços</a></li>
<li><a href="#contato">Contato</a></li>
<li><a href="https://www.tecmundo.com.br" target="_blank">Notícias de Tecnologia</a></li>
</ul>
</nav>
</header>
<!-- Seção Sobre Nós -->
<section id="sobre">
<h2>Sobre Nós</h2>
<p>A TechFuture atua no mercado de tecnologia desenvolvendo sistemas sob medida para empresas de todos os portes.</p>
<p>Nosso compromisso é com a <b>qualidade</b> e a <i>inovação</i>, entregando soluções que realmente fazem a diferença.</p>
<img src="https://images.adsttc.com/media/images/64d5/5168/fbc6/5827/13ee/2f9d/medium_jpg/startup-vitap-macro-arquitetos_3.jpg">
</section>
<!-- Seção Serviços -->
<section id="servicos">
<h2>Serviços</h2>
<ul>
<li>Desenvolvimento Web</li>
<li>Aplicativos Mobile</li>
<li>Consultoria em Tecnologia</li>
</ul>
</section>
<!-- Seção Contato -->
<section id="contato">
<h2>Contato</h2>
<p>Email: contato@techfuture.com</p>
<p>Telefone: (11) 99999-9999</p>
</section>
<!-- Rodapé -->
<footer>
<p> © 2026 TechFuture Soluções Digitais. Todos os direitos reservados.</p>
<p><a href="#topo">Voltar ao topo</a></p>
</footer>
</body>
</html>
Requisitos obrigatórios:
- No geral, fonte deve ser Arial e fundo da página deve ser cinza claro.
- Cabeçalho com cor de fundo escura, cor de fonte branca, margem interna de 20px e o texto deve estar centralizado.
- Menu de navegação com cor de fundo diferente do cabeçalho e margem interna de 10px. Elementos do menu com cor de fonte branca, sem ° da lista.
- Seções com cor de fundo branca, borda de espessura 1px cinzas e margem externa de 20px.
- Seção Contato em destaque: cor de fundo amarelo claro, título em amarelo escuro e borda de espessura 2px amarelo escuro.
- Título das seções devem ter uma borda inferior de espessura 2px cinza.
- Rodapé deve ter cor de fundo escura, cor de fonte branca, margem interna de 15px e o texto deve estar alinhado à direita.
- Desafio:
- No menu de navegação, o elemento
<a>por padrão deixa o conteúdo sublinhado. Remova esse comportamento. - No menu de navegação, destaque o elemento ao passar o mouse por cima.
- Observe que o site todo ficou com uma margem em volta de todos os elementos. Descubra se é interna ou externa e remova-a.
- No menu de navegação, o elemento