🖼️ Trabalhando com Imagens

🔍 Anatomia da Tag IMG

<img src="images/foto.jpg" alt="Descrição da imagem" width="300" height="200" >
⬆️ TAG | ⬆️ CAMINHO | ⬆️ ACESSIBILIDADE | ⬆️ DIMENSÕES
<!-- Imagem básica --> <img src="foto.jpg" alt="Minha foto"> <!-- Imagem com dimensões --> <img src="logo.png" alt="Logo da empresa" width="200" height="100"> <!-- Imagem com tooltip --> <img src="produto.jpg" alt="Produto em destaque" title="Clique para ampliar"> <!-- Imagem com lazy loading --> <img src="banner.jpg" alt="Banner principal" loading="lazy">
⚠️ Atributo ALT é obrigatório! Sem ele, leitores de tela não conseguem descrever a imagem para pessoas com deficiência visual.

📏 Dimensionamento e Responsividade

Tamanho Fixo (problemático)

200px × 150px
FIXO
img { width: 200px; height: 150px; } /* ❌ Não responsivo */

Responsiva (recomendado)

Max-width: 100%
RESPONSIVO
img { max-width: 100%; height: auto; } /* ✅ Se adapta ao container */

Object-fit: Cover

Cover
CORTA PARA CABER
img { width: 100%; height: 150px; object-fit: cover; } /* Corta se necessário */

Object-fit: Contain

Contain
CABE INTEIRA
img { width: 100%; height: 150px; object-fit: contain; } /* Imagem inteira visível */
💡 Dica de responsividade: Use sempre max-width: 100% e height: auto como base. Use object-fit para controles avançados.

🎨 Figure e Figcaption

IMAGEM DE EXEMPLO
(Paisagem de montanha)
🏔️ Vista panorâmica da Serra da Mantiqueira ao amanhecer
GRÁFICO DE EXEMPLO
(Vendas 2024)
📊 Crescimento de vendas no primeiro trimestre de 2024
<figure> <img src="paisagem.jpg" alt="Vista da montanha"> <figcaption> Vista panorâmica da Serra da Mantiqueira ao amanhecer </figcaption> </figure> <figure> <img src="grafico.png" alt="Gráfico de vendas"> <figcaption> Crescimento de vendas no primeiro trimestre de 2024 </figcaption> </figure>
🚀 Vantagens do Figure: Melhor semântica, acessibilidade aprimorada, SEO otimizado e agrupamento lógico de imagem + legenda.

📁 Formatos de Imagem

🖼️

JPEG (.jpg)

Uso: Fotos

Vantagem: Arquivo pequeno

Desvantagem: Perde qualidade

🎨

PNG (.png)

Uso: Logos, ícones

Vantagem: Transparência

Desvantagem: Arquivo maior

🎬

GIF (.gif)

Uso: Animações

Vantagem: Movimento

Desvantagem: Poucas cores

📐

SVG (.svg)

Uso: Ícones, logos

Vantagem: Escalável

Desvantagem: Complexo para fotos

WebP (.webp)

Uso: Web moderna

Vantagem: 30% menor

Desvantagem: Suporte limitado

<!-- Escolha o formato certo --> <img src="foto.jpg" alt="Foto de família"> <!-- JPEG para fotos --> <img src="logo.png" alt="Logo da empresa"> <!-- PNG para logos --> <img src="icone.svg" alt="Ícone de menu"> <!-- SVG para ícones --> <img src="animacao.gif" alt="Loading..."> <!-- GIF para animações --> <!-- Fallback para WebP --> <picture> <source srcset="imagem.webp" type="image/webp"> <img src="imagem.jpg" alt="Descrição"> </picture>

🔗 Imagens como Links

CLIQUE AQUI
🔗 Link Image
PRÓXIMA AULA
📊 Tabelas
<!-- Imagem como link --> <a href="pagina-destino.html"> <img src="banner.jpg" alt="Clique para saber mais"> </a> <!-- Imagem com link externo --> <a href="https://site.com" target="_blank" rel="noopener"> <img src="logo-parceiro.png" alt="Visite nosso parceiro"> </a> <!-- CSS para efeito hover --> <style> .link-img { transition: transform 0.3s ease; } .link-img:hover { transform: scale(1.05); } </style>

⚡ Otimização e Performance

<!-- Lazy Loading - carrega apenas quando necessário --> <img src="imagem-pesada.jpg" alt="Descrição" loading="lazy"> <!-- Srcset para diferentes resoluções --> <img src="pequena.jpg" srcset="pequena.jpg 480w, media.jpg 800w, grande.jpg 1200w" sizes="(max-width: 480px) 100vw, (max-width: 800px) 50vw, 25vw" alt="Imagem responsiva"> <!-- Picture para diferentes formatos --> <picture> <source media="(min-width: 800px)" srcset="desktop.webp"> <source media="(min-width: 400px)" srcset="tablet.webp"> <img src="mobile.jpg" alt="Imagem adaptativa"> </picture> <!-- Preload para imagens críticas --> <link rel="preload" as="image" href="hero-image.jpg">
💡 Dicas de otimização:
✅ Use loading="lazy" para imagens abaixo da dobra
✅ Comprima imagens antes de subir (TinyPNG, ImageOptim)
✅ Use WebP quando possível
✅ Implemente srcset para diferentes telas
✅ Use ferramentas como Lighthouse para medir performance

✨ Exemplo Prático Completo

<!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8"> <title>Galeria de Imagens</title> <style> .galeria { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; padding: 20px; } .item { border-radius: 8px; overflow: hidden; box-shadow: 0 4px 8px rgba(0,0,0,0.1); } .item img { width: 100%; height: 200px; object-fit: cover; transition: transform 0.3s ease; } .item:hover img { transform: scale(1.1); } figcaption { padding: 15px; background: #f8f9fa; color: #333; } </style> </head> <body> <div class="galeria"> <figure class="item"> <img src="natureza1.jpg" alt="Cachoeira em meio à mata" loading="lazy"> <figcaption> Cachoeira do Vale Verde </figcaption> </figure> <figure class="item"> <picture> <source srcset="montanha.webp" type="image/webp"> <img src="montanha.jpg" alt="Pico da montanha ao nascer do sol" loading="lazy"> </picture> <figcaption> Pico do Itatiaia </figcaption> </figure> </div> </body> </html>



Dev by Maugus em HTML puro 📙