HTML: Imagens Responsivas HTML
Última atualização: 2026-09-08
A mesma imagem deve ser exibida em diferentes tamanhos e resoluções em celulares, tablets e desktops — isso é "imagens responsivas". Aprenda como tornar as imagens nítidas, eficientes em largura de banda e de carregamento rápido em todos os tamanhos de tela.
1. Configurações de Viewport
O primeiro passo no design responsivo é configurar o viewport. Sem ele, os navegadores móveis reduzem a página para uma largura de 980px para exibição, tornando o texto e as imagens muito pequenos. Adicione esta tag <meta> e a largura da página corresponderá à tela do dispositivo:
▶ Exemplo
▶ Experimente2. Responsividade de Imagens
As duas propriedades CSS mais usadas para fazer imagens se adaptarem automaticamente à largura do container:
max-width: 100%— A imagem nunca ultrapassa a largura do container e não se estica além do seu tamanho originalwidth: 100%— A imagem sempre preenche a largura do container, podendo ser esticada e distorcida
▶ Exemplo
▶ Experimente3. O Atributo srcset
srcset permite que o navegador selecione automaticamente a imagem mais adequada com base na densidade da tela (1x, 2x, 3x) ou na largura do viewport. Basta fornecer múltiplas versões da imagem, e o navegador "escolhe inteligentemente":
▶ Exemplo
▶ ExperimenteExistem duas formas comuns de usar srcset:
- Descritor x: Seleciona com base na densidade da tela. Telas normais usam 1x, telas Retina usam 2x ou 3x.
- Descritor w: Seleciona com base na largura do viewport. Combinado com o atributo
sizespara informar ao navegador a largura real de exibição da imagem, o navegador calcula a imagem ideal.
4. O Elemento <picture>
<picture> é mais flexível que srcset. Ele permite carregar imagens completamente diferentes em diferentes larguras de tela — por exemplo, uma imagem panorâmica em telas largas e um close-up cortado em telas estreitas (isso é chamado de "direção de arte" em design):
▶ Exemplo
▶ Experimente<picture> também é comumente usado para oferecer múltiplos formatos de imagem (como WebP), com o navegador selecionando o primeiro formato suportado:
▶ Exemplo
▶ ExperimenteO navegador verifica cada <source> de cima para baixo. Se suportar o formato, ele carrega; se nenhum for suportado, ele volta para <img>. Assim, você aproveita os benefícios de compressão dos novos formatos enquanto mantém a compatibilidade.
❓ Perguntas Frequentes
srcset e sizes?srcset fornece múltiplas fontes de imagem com suas resoluções (como 480w, 768w), enquanto sizes diz ao navegador o tamanho real de exibição da imagem em diferentes larguras de viewport (como (max-width: 480px) 100vw). O navegador calcula qual imagem carregar com base em ambas as informações. Simplesmente:srcset é "quais imagens estão disponíveis", sizes é "quão grande a imagem será em diferentes situações".srcset+sizes tem três vantagens:1)O navegador pode decidir qual imagem carregar enquanto analisa o HTML, sem esperar a execução do JavaScript; 2)Funciona mesmo quando JavaScript está desabilitado; 3)O navegador pode escolher de forma mais inteligente (considerando condições de rede, proporção de pixels do dispositivo, etc.). JavaScript é adequado apenas para cenários complexos de direção de arte (como composições diferentes); simples troca de resolução é tratada por srcset.<picture> vs srcset?srcset é para "diferentes versões de resolução da mesma imagem" — o navegador seleciona automaticamente a nitidez apropriada. <picture> é para "exibir imagens diferentes em diferentes cenários" — que podem ser composições diferentes (direção de arte) ou formatos diferentes (WebP/AVIF/JPG). Regra simples:se apenas a nitidez difere, use srcset; se a composição ou formato difere, use <picture>.alt. Nota:imagens em srcset devem ser versões diferentes do mesmo conteúdo — não use imagens completamente diferentes, ou mecanismos de busca podem considerar enganoso.📖 Resumo
<meta name="viewport">é o primeiro passo para a adaptação mobilemax-width: 100%torna as imagens responsivas sem distorçãosrcsetcarrega imagens de diferentes resoluções com base na densidade da tela ou na largura do viewport<picture>+<source>exibe imagens com composição diferente em diferentes larguras de tela, ou oferece múltiplos formatos de imagem- Sempre use
<img>como fallback para<picture>
📝 Exercícios
- Galeria de Imagens Responsiva: Crie uma página de galeria com 3 imagens, usando
max-width: 100%em cada uma para garantir que sejam exibidas completamente no celular. Usesrcsetpara fornecer versões 1x e 2x para cada imagem. - Prática de Direção de Arte: Use
<picture>para implementar: desktop mostra uma foto de paisagem com 1200px de largura, tablet mostra uma versão cortada de 768px, celular mostra um close-up de 480px. Use media queriesmin-widthpara controlar os breakpoints.