Trabalhando com Imagens em HTML: Guia Completo da Tag <img>
Domine imagens HTML com este guia abrangente cobrindo a tag img, texto alternativo, formatos de arquivo, imagens responsivas, srcset e otimização de performance web.
Domine imagens HTML com este guia abrangente cobrindo a tag img, texto alternativo, formatos de arquivo, imagens responsivas, srcset e otimização de performance web.
<img>
ExplicadaA tag <img>
é um elemento HTML auto-fechado usado para incorporar imagens em páginas web. Diferente de outros elementos HTML, ela não requer uma tag de fechamento e usa atributos para definir a fonte e propriedades da imagem.
<img src="caminho/para/imagem.jpg" alt="Descrição da imagem" />
<img>
Atributos Obrigatórios:
src
: Especifica o caminho para o arquivo de imagemalt
: Fornece texto alternativo para acessibilidadeAtributos Opcionais:
width
: Define a largura da imagem em pixelsheight
: Define a altura da imagem em pixelstitle
: Adiciona uma dica quando o mouse passa sobre a imagemloading
: Controla quando a imagem carrega (carregamento lazy)<img
src="imagens/por-do-sol-praia.jpg"
alt="Lindo pôr do sol sobre uma praia tropical com palmeiras"
width="800"
height="600"
title="Paraíso do Pôr do Sol na Praia"
loading="lazy"
/>
O texto alternativo (alt text) é crucial para acessibilidade web e SEO. Ele serve a múltiplos propósitos:
Exemplos de Bom Texto Alternativo:
<!-- Descritivo e específico -->
<img
src="golden-retriever.jpg"
alt="Golden retriever brincando de buscar em um parque ensolarado"
/>
<!-- Descrição funcional para botões -->
<img src="icone-busca.png" alt="Buscar" />
<!-- Alt vazio para imagens decorativas -->
<img src="borda-decorativa.png" alt="" />
Melhores Práticas para Texto Alternativo:
alt=""
) para imagens puramente decorativasExemplos de Texto Alternativo Ruim:
<!-- Muito vago -->
<img src="cachorro.jpg" alt="cachorro" />
<!-- Redundante -->
<img src="por-do-sol.jpg" alt="Imagem de um pôr do sol" />
<!-- Muito longo -->
<img
src="escritorio.jpg"
alt="Um prédio de escritórios moderno muito grande com janelas de vidro e estrutura de aço localizado no centro da cidade com pessoas caminhando"
/>
Escolher o formato de imagem correto é crucial para performance web e qualidade. Aqui estão os principais formatos e seus casos de uso:
Melhor para: Fotografias e imagens com muitas cores
Características:
<img src="foto-paisagem.jpg" alt="Paisagem montanhosa ao amanhecer" />
Melhor para: Imagens com transparência, logos, gráficos com poucas cores
Características:
<img src="logo-empresa.png" alt="Logo da empresa Mediaweb" />
Melhor para: Aplicações web modernas (quando suportado)
Características:
<picture>
<source srcset="imagem-hero.webp" type="image/webp" />
<img src="imagem-hero.jpg" alt="Banner hero mostrando nosso produto" />
</picture>
Melhor para: Gráficos simples, ícones, logos que precisam escalar
Características:
<img src="icone-seta.svg" alt="Seta direita" />
Melhor para: Animações simples (usar com moderação)
Características:
Sites modernos devem funcionar em vários tamanhos e resoluções de tela. Imagens responsivas garantem performance e qualidade ideais em todos os dispositivos.
srcset
O atributo srcset
permite fornecer múltiplas fontes de imagem para diferentes condições de tela:
<img
src="imagem-800w.jpg"
srcset="imagem-400w.jpg 400w, imagem-800w.jpg 800w, imagem-1200w.jpg 1200w"
sizes="(max-width: 600px) 400px, (max-width: 1000px) 800px, 1200px"
alt="Imagem de paisagem responsiva"
/>
Descritores de Largura (w
):
srcset=" imagem-pequena.jpg 400w, imagem-media.jpg 800w, imagem-grande.jpg 1200w "
Descritores de Densidade (x
):
srcset=" imagem.jpg 1x, imagem-2x.jpg 2x, imagem-3x.jpg 3x "
<picture>
Para cenários de imagens responsivas mais complexos, use o elemento <picture>
:
<picture>
<!-- Mobile: imagem menor, cortada -->
<source media="(max-width: 600px)" srcset="hero-mobile.jpg" />
<!-- Tablet: imagem de tamanho médio -->
<source media="(max-width: 1024px)" srcset="hero-tablet.jpg" />
<!-- Desktop: imagem em tamanho completo -->
<source media="(min-width: 1025px)" srcset="hero-desktop.jpg" />
<!-- Fallback para navegadores mais antigos -->
<img src="hero-desktop.jpg" alt="Banner hero mostrando nossos serviços" />
</picture>
Use imagens diferentes para diferentes tamanhos de tela:
<picture>
<!-- Mobile: orientação retrato -->
<source media="(max-width: 600px)" srcset="imagem-retrato.jpg" />
<!-- Desktop: orientação paisagem -->
<img src="imagem-paisagem.jpg" alt="Colaboração da equipe em escritório moderno" />
</picture>
A otimização de imagens é crucial para sites de carregamento rápido. Aqui estão as técnicas essenciais:
<!-- Não faça isso: imagem grande redimensionada -->
<img
src="imagem-enorme-4000x3000.jpg"
width="400"
height="300"
alt="Foto do produto"
/>
<!-- Faça isso: imagem dimensionada apropriadamente -->
<img src="produto-400x300.jpg" width="400" height="300" alt="Foto do produto" />
<!-- Navegadores modernos -->
<img src="imagem.jpg" alt="Descrição" loading="lazy" />
<!-- Com fallback intersection observer -->
<img
src="placeholder.jpg"
data-src="imagem-real.jpg"
alt="Descrição"
class="lazy-load"
loading="lazy"
/>
Para imagens JPEG:
Para imagens PNG:
<picture>
<!-- Formato moderno para navegadores suportados -->
<source srcset="imagem.avif" type="image/avif" />
<source srcset="imagem.webp" type="image/webp" />
<!-- Fallback para todos os navegadores -->
<img src="imagem.jpg" alt="Descrição" />
</picture>
<!-- Previne layout shift -->
<img
src="imagem.jpg"
alt="Descrição"
width="800"
height="600"
style="max-width: 100%; height: auto;"
/>
Crie áreas clicáveis dentro de uma imagem:
<img src="mapa-mundo.jpg" alt="Mapa do mundo" usemap="#mapamundo" />
<map name="mapamundo">
<area
shape="rect"
coords="0,0,100,100"
href="america-norte.html"
alt="América do Norte"
/>
<area shape="circle" coords="200,200,50" href="europa.html" alt="Europa" />
</map>
Forneça significado semântico e legendas:
<figure>
<img src="grafico.jpg" alt="Gráfico de crescimento de vendas mostrando aumento de 25%" />
<figcaption>
Crescimento de Vendas: Q4 2024 mostra aumento de 25% em relação ao trimestre anterior
</figcaption>
</figure>
Estilize imagens com CSS:
<img src="perfil.jpg" alt="Foto de perfil do usuário" class="imagem-perfil" />
.imagem-perfil {
width: 150px;
height: 150px;
border-radius: 50%;
object-fit: cover;
border: 3px solid #007bff;
}
<!-- Errado -->
<img src="grafico-importante.jpg" />
<!-- Correto -->
<img
src="grafico-importante.jpg"
alt="Gráfico de crescimento de receita mostrando aumento de 40%"
/>
<!-- Errado: texto na imagem -->
<img src="texto-cabecalho.jpg" alt="Bem-vindos ao Nosso Site" />
<!-- Correto: texto real -->
<h1>Bem-vindos ao Nosso Site</h1>
<!-- Errado: arquivo enorme -->
<img src="foto-5mb.jpg" alt="Foto da equipe" />
<!-- Correto: arquivo otimizado -->
<img src="foto-otimizada-200kb.jpg" alt="Foto da equipe" />
<!-- Errado: tamanho fixo -->
<img src="hero.jpg" width="1200" height="800" alt="Imagem hero" />
<!-- Correto: responsivo -->
<img
src="hero.jpg"
srcset="hero-400w.jpg 400w, hero-800w.jpg 800w, hero-1200w.jpg 1200w"
sizes="100vw"
alt="Imagem hero"
style="max-width: 100%; height: auto;"
/>
Trabalhar com imagens em HTML envolve muito mais do que simplesmente adicionar uma tag <img>
à sua página. Ao entender a implementação adequada, requisitos de acessibilidade, formatos de arquivo, técnicas responsivas e estratégias de otimização, você pode criar sites que são rápidos, acessíveis e visualmente atraentes em todos os dispositivos.
Lembre-se de que as imagens impactam significativamente tanto a experiência do usuário quanto a performance do site. Dedique tempo para implementar essas técnicas adequadamente, e seus usuários agradecerão com melhor engajamento e carregamentos de página mais rápidos.
Comece a implementar essas técnicas de otimização de imagem em seu próximo projeto, e você verá melhorias imediatas tanto nos scores de performance quanto de acessibilidade.
Continue lendo com estes artigos relacionados
Domine listas HTML com este guia completo cobrindo elementos ul, ol e dl, técnicas de aninhamento, estilização com CSS e melhores práticas de acessibilidade.
Aprenda tabelas HTML do básico às técnicas avançadas. Domine elementos table, tr, td, th, acessibilidade, design responsivo e quando usar tabelas adequadamente.
Aprenda a criar formulários HTML interativos com tipos de entrada, rótulos, botões e validação básica. Domine a acessibilidade e melhores práticas de formulários.
Descubra o poder dos elementos HTML semânticos como header, footer, article e section. Aprenda como a marcação semântica melhora SEO, acessibilidade e manutenibilidade do código.