Imagens Responsivas: srcset, Picture e object-fit em Foco

Quando trabalhamos com imagens responsivasResponsividade com HTML: Viewport e `<picture>`Responsividade com HTML: Viewport e `<picture>`Descubra como usar a meta viewport e o elemento picture para imagens responsivas, garantindo desempenho, usabilidade e SEO de qualidade., nosso objetivo é garantir que elas se adaptem adequadamente a diferentes tamanhos de tela e dispositivos. Para isso, contamos com recursos poderosos, como o atributo srcsetResponsividade com HTML: Viewport e `<picture>`Responsividade com HTML: Viewport e `<picture>`Descubra como usar a meta viewport e o elemento picture para imagens responsivas, garantindo desempenho, usabilidade e SEO de qualidade. em conjunto com sizes, o elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. <picture> e a propriedadeClasses e Herança em ES6+Classes e Herança em ES6+Aprenda a dominar classes e herança em ES6+: escreva códigos JavaScript claros e eficientes com métodos, getters e setters. objectVariáveis, Tipos de Dados e OperadoresVariáveis, Tipos de Dados e OperadoresAprenda os conceitos essenciais de JavaScript, explorando variáveis, tipos de dados e operadores com exemplos claros e práticas dicas de programação.-fit. A seguir, veremos como cada um deles contribui para um layout mais flexível e otimizado.

Por que Imagens Responsivas Importam?🔗

Em dispositivos móveis e telas menores, não faz sentido carregar uma imagem enorme e pesada, pois isso atrapalha o desempenhoDebugging e Ferramentas de Desenvolvimento do NavegadorDebugging e Ferramentas de Desenvolvimento do NavegadorAprenda a depurar código JavaScript com as Ferramentas do Navegador. Use console, breakpoints e debugger para solucionar bugs de forma prática. e ocupa banda desnecessariamente. Além disso, imagem fora de proporção pode arruinar a estética do layout. Por isso, aprender a adaptar imagens ao contexto do usuário proporciona melhor experiência e bom desempenhoDebugging e Ferramentas de Desenvolvimento do NavegadorDebugging e Ferramentas de Desenvolvimento do NavegadorAprenda a depurar código JavaScript com as Ferramentas do Navegador. Use console, breakpoints e debugger para solucionar bugs de forma prática..

srcset e sizes🔗

O atributo srcsetResponsividade com HTML: Viewport e `<picture>`Responsividade com HTML: Viewport e `<picture>`Descubra como usar a meta viewport e o elemento picture para imagens responsivas, garantindo desempenho, usabilidade e SEO de qualidade. permite que o navegador escolha a melhor imagem de acordo com a tela. A ideia básica é oferecer múltiplas versões de um mesmo arquivo, cada uma com larguras diferentes:

<img
  src="img-pequena.jpg"
  srcset="
    img-pequena.jpg 480w,
    img-media.jpg   768w,
    img-grande.jpg  1200w"
  sizes="
    (max-width: 600px) 480px,
    (max-width: 1024px) 768px,
    1200px"
  alt="Paisagem Responsiva">

O navegador utiliza essas informações para selecionar automaticamente o arquivo mais adequado para cada tamanho de tela. Dessa forma, evitamos uso de imagens muito pesadas ou muito pequenas.

Elemento picture🔗

O <picture> é um elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. que dá mais controle sobre qual imagem exibir em diferentes situações. Dentro dele, usamos <source> com diferentes condicionalizações, como mediaResponsividade com HTML: Viewport e `<picture>`Responsividade com HTML: Viewport e `<picture>`Descubra como usar a meta viewport e o elemento picture para imagens responsivas, garantindo desempenho, usabilidade e SEO de qualidade. (pela larguraSeletores e Propriedades CSS EssenciaisSeletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos. de tela) ou type (formato da imagem). Em seguida, fornecemos um <img> de fallback para navegadores que não suportam picture:

<picture>
  <source
    srcset="img-hd.jpg"
    media="(min-width: 1024px)">
  <source
    srcset="img-hd.webp"
    type="image/webp"
    media="(min-width: 1024px)">
  <img
    src="img-baixa.jpg"
    alt="Imagem adaptada para telas grandes e pequenas">
</picture>

Vantagens do <picture>:

object-fit e object-position🔗

Quando queremos preencher um espaço com uma imagem, nem sempre a proporção do arquivo é igual à área reservada. A propriedadeClasses e Herança em ES6+Classes e Herança em ES6+Aprenda a dominar classes e herança em ES6+: escreva códigos JavaScript claros e eficientes com métodos, getters e setters. objectVariáveis, Tipos de Dados e OperadoresVariáveis, Tipos de Dados e OperadoresAprenda os conceitos essenciais de JavaScript, explorando variáveis, tipos de dados e operadores com exemplos claros e práticas dicas de programação.-fit, junto com object-positionPosicionamento: static, relative, absolute, fixed, stickyPosicionamento: static, relative, absolute, fixed, stickyDescubra como usar os métodos de posicionamento CSS, de static a sticky, para criar layouts interativos, precisos e eficazes., controla como a imagem é exibida dentro de um elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. que tenha altura e larguraSeletores e Propriedades CSS EssenciaisSeletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos. fixas ou variáveisPré-processadores (SASS/SCSS): Variáveis, Mixins, NestingPré-processadores (SASS/SCSS): Variáveis, Mixins, NestingAprenda a manter seu CSS de forma otimizada com SASS/SCSS utilizando variáveis, mixins e nesting para um código limpo e produtivo..

object-fit

Veja um exemplo simples de uso:

.resp-container {
  width: 300px;
  height: 200px;
  overflow: hidden;
}
.resp-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

Nesse caso:

object-position

Controla a área focal do recorte da imagem. É como o background-positionPosicionamento: static, relative, absolute, fixed, stickyPosicionamento: static, relative, absolute, fixed, stickyDescubra como usar os métodos de posicionamento CSS, de static a sticky, para criar layouts interativos, precisos e eficazes. para fundos:

.resp-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center; /* Foca na parte superior central da imagem */
}

Ao definir top center, por exemplo, estamos informando que o ponto a exibir no recorte deve priorizar a parte superior da imagem, alinhada horizontalmente ao centro.

Comparativo🔗

Segue um breve comparativo em formato de tabelaCriando Tabelas: `<table>`, `<tr>`, `<td>`, `<th>`Criando Tabelas: `<table>`, `<tr>`, `<td>`, `<th>`Descubra como montar tabelas HTML com tags básicas. Este tutorial prático ensina o uso de <table> <tr> <td> e <th> para organizar dados de forma eficiente., destacando o uso desses recursos:

RecursoO que fazVantagens
srcsetPermite fornecer várias versões da mesma imagemEvita uso de imagens muito pesadas
pictureDefine diferentes imagens/formatos conforme regrasTotal flexibilidade e formatos
object-fitGarante como a imagem se ajusta ao contêinerFacilidade de manter contexto visual

Conclusão🔗

Usar srcsetResponsividade com HTML: Viewport e `<picture>`Responsividade com HTML: Viewport e `<picture>`Descubra como usar a meta viewport e o elemento picture para imagens responsivas, garantindo desempenho, usabilidade e SEO de qualidade., <picture> e objectVariáveis, Tipos de Dados e OperadoresVariáveis, Tipos de Dados e OperadoresAprenda os conceitos essenciais de JavaScript, explorando variáveis, tipos de dados e operadores com exemplos claros e práticas dicas de programação.-fit é fundamental para um projeto moderno que prioriza experiência do usuário e desempenhoDebugging e Ferramentas de Desenvolvimento do NavegadorDebugging e Ferramentas de Desenvolvimento do NavegadorAprenda a depurar código JavaScript com as Ferramentas do Navegador. Use console, breakpoints e debugger para solucionar bugs de forma prática.. Eles permitem escolher a imagem ideal para cada dispositivo, otimizam o carregamento e garantem um visual coeso em qualquer dimensão de tela. Essas técnicas, combinadas e aplicadas corretamente, fazem toda a diferença no resultado final de um site profissional e responsivoResponsividade com HTML: Viewport e `<picture>`Responsividade com HTML: Viewport e `<picture>`Descubra como usar a meta viewport e o elemento picture para imagens responsivas, garantindo desempenho, usabilidade e SEO de qualidade..

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

Compartilhar artigo