SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
03.02.2025

Redimensionamento e Estiramento de Imagens de Fundo em CSS

Resposta Rápida

Para garantir que a imagem de fundo preencha perfeitamente um elemento, defina a propriedade background-size como cover, centralize a imagem dentro do elemento e defina a propriedade background-repeat como no-repeat.

.element {
  background: url('image.jpg') center/cover no-repeat;
}

Esse código CSS garante que a imagem preencha totalmente e sem distorções o elemento com a classe .element.

Aplicando Tamanhos Mínimos: Mantendo Proporções da Imagem

Defina min-width e min-height como 100% para garantir a cobertura total do fundo do elemento. Observe que, devido a diferenças nas proporções, algumas partes da imagem podem ser cortadas.

Compatibilidade entre Navegadores: Suporte a Versões Antigas

O comando background-size: cover; é suportado pela maioria dos navegadores, mas não esqueça das versões mais antigas. Para garantir a compatibilidade, use prefixes de fornecedores.

.element {
  -webkit-background-size: cover; /* Para Chrome e Safari */
  -moz-background-size: cover;  /* Para Firefox */ 
  -o-background-size: cover; /* Para Opera 12 */
  background-size: cover; /* Padrão para outros navegadores, incluindo IE9+ */
}

Para suporte a versões mais antigas do IE, use o seguinte código:

-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='suaImagem.jpg', sizingMethod='scale')";

Ferramentas Modernas: Suporte Adicional

Se apenas o CSS não for suficiente, Modernizr e jQuery podem ajudar. O Modernizr verifica o suporte da propriedade background-size, enquanto o plugin imgsizer para jQuery permite gerenciar imagens de fundo em diferentes dispositivos.

Mantendo Proporções: Proporções de Aspecto

Se você precisa manter as proporções da imagem de fundo enquanto redimensiona, use o valor "auto" para largura ou altura. Mas tenha cuidado com min-width e min-height definidos como 100% para evitar cortes indesejados na imagem.

Visualização

background-size: cover; /* Uma pequena imagem de fundo pode cobrir lindamente todo o elemento */
background-size: contain; /* Uma imagem muito grande se encaixará completamente dentro do elemento */
          🏞️ Inverno (cobrir)                🏞️ Verão (contido)
Antes:   ⛄️🌲[-------]🌲⛄️         Antes:   🌞🌳[-------]🌳🌞
Depois:   🌲[🏞️🌲🌲🌲🏞️]🌲         Depois:   [🏞️🌳🌳🌳🏞️]

Largura Total vs. Cobertura Completa: Avaliando a Tarefa

Para exibir um fundo ao longo de toda a largura do contêiner enquanto mantém proporções, use background-size: 100% auto;. Se a cobertura completa for necessária, defina background-size: 100% 100%;.

Media Queries: Gerenciando Responsividade

Para adaptar background-size para diferentes tamanhos de tela, use media queries para alcançar imagens de fundo responsivas.

Design Responsivo: Trabalhando com Tamanhos Percentuais

Designs que utilizam predominantemente valores percentuais requerem ajustes cuidadosos em scripts para controle preciso do redimensionamento da imagem sem distorções.

Recursos Úteis

  1. background-size - CSS: Folhas de Estilo em Cascata | MDN — Descrições detalhadas sobre como usar a propriedade CSS background-size.
  2. Múltiplos Fundos em CSS — Visão geral sobre o uso de múltiplos fundos em CSS3.
  3. Imagem de Fundo Perfeita em Tela Cheia | CSS-Tricks — Um guia passo a passo para criar uma imagem de fundo em tela cheia.
  4. Caixas de Proporção | CSS-Tricks — Guia sobre como manter proporções para imagens.
  5. Um Guia Completo para Flexbox | CSS-Tricks — Um guia abrangente para flexbox, simplificando a criação de layouts responsivos.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!