Propriedade background-size: Ajustando o tamanho da imagem de fundo
Descubra como controlar o tamanho das imagens de fundo para que se encaixem perfeitamente.
Você já sabe como colocar uma imagem de fundo (background-image) e como controlar sua repetição (background-repeat) e posição (background-position). Mas e se a imagem for muito grande ou muito pequena para o elemento? Ou se você quiser que ela preencha o espaço de uma forma específica?
É para isso que serve a propriedade background-size. Ela permite que você defina o tamanho da imagem de fundo.
Pense na background-size como a forma que você redimensiona uma foto para caber em um porta-retrato. Você pode esticá-la para preencher tudo, ou diminuí-la para que caiba inteira, ou até mesmo usar o tamanho original.
Como usar a propriedade background-size
A sintaxe permite vários tipos de valores para controlar o redimensionamento.
Sintaxe:
seletor {
background-size: valor;
}
Valores possíveis:
auto(padrão): A imagem de fundo mantém seu tamanho original (largura e altura). Se apenas um valor forauto, o outro é calculado para manter a proporção da imagem.- Uso: Quando você quer que a imagem apareça em seu tamanho real.
cover: Redimensiona a imagem de fundo para que ela cubra completamente a área de conteúdo do elemento (incluindo padding e borda), mantendo sua proporção. Se a proporção da imagem for diferente da do elemento, partes da imagem podem ser cortadas.- Uso: Ideal para fundos de "capa" ou "hero" onde você quer que a imagem preencha todo o espaço, mesmo que isso signifique cortar um pouco.
contain: Redimensiona a imagem de fundo para que ela caiba completamente dentro da área de conteúdo do elemento, mantendo sua proporção. Se a proporção da imagem for diferente da do elemento, pode haver espaços vazios (preenchidos pelabackground-color) nas laterais ou em cima/embaixo.- Uso: Ideal para logotipos ou ícones que você quer que sejam totalmente visíveis, sem cortes.
Valores de Comprimento (px, em, rem, vw, vh, etc.): Você pode especificar a largura e a altura da imagem de fundo.
- Sintaxe:
background-size: largura altura; - Exemplo:
background-size: 200px 150px;(largura de 200px, altura de 150px). - Se apenas um valor for fornecido, ele é a largura, e a altura é definida como
autopara manter a proporção. Ex:background-size: 100px;é o mesmo quebackground-size: 100px auto;. - Uso: Para um controle preciso do tamanho da imagem.
- Sintaxe:
Porcentagens: A largura e/ou altura da imagem de fundo são definidas como uma porcentagem da largura e/ou altura do elemento.
- Sintaxe:
background-size: largura% altura%; - Exemplo:
background-size: 50% 50%;(a imagem terá metade da largura e metade da altura do elemento). - Se apenas um valor for fornecido, ele é a largura, e a altura é
auto. Ex:background-size: 100%;é o mesmo quebackground-size: 100% auto;. - Uso: Para imagens responsivas que se ajustam ao tamanho do elemento.
- Sintaxe:
Exemplos Práticos:
Considere o seguinte HTML:
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Background Size</title>
<style>
body {
font-family: sans-serif;
margin: 0;
padding: 0;
}
.box {
width: 300px;
height: 200px;
border: 2px solid #333;
margin: 20px;
display: inline-block;
vertical-align: top;
background-color: #f0f0f0; /* Cor de fallback */
background-image: url("https://via.placeholder.com/600x300/007bff/fff?text=Image"); /* Imagem de exemplo (2:1 proporção) */
background-repeat: no-repeat; /* Para facilitar a visualização */
}
</style>
</head>
<body>
<div class="box box-auto">
<h3>Auto (Padrão)</h3>
</div>
<div class="box box-cover">
<h3>Cover</h3>
</div>
<div class="box box-contain">
<h3>Contain</h3>
</div>
<div class="box box-pixels">
<h3>200px 100px</h3>
</div>
<div class="box box-percentage">
<h3>50% 50%</h3>
</div>
<div class="box box-percentage-auto">
<h3>100% Auto</h3>
</div>
</body>
</html>
Agora, vamos aplicar os estilos background-size:
.box-auto {
background-size: auto; /* Tamanho original da imagem (600x300px) */
background-position: center;
}
.box-cover {
background-size: cover; /* A imagem (600x300) vai cobrir a caixa (300x200), cortando as laterais */
background-position: center;
}
.box-contain {
background-size: contain; /* A imagem (600x300) vai caber na caixa (300x200), deixando espaço em cima/embaixo */
background-position: center;
}
.box-pixels {
background-size: 200px 100px; /* Largura 200px, Altura 100px */
background-position: center;
}
.box-percentage {
background-size: 50% 50%; /* 150px de largura, 100px de altura (50% de 300x200) */
background-position: center;
}
.box-percentage-auto {
background-size: 100% auto; /* 300px de largura, altura proporcional (150px) */
background-position: center;
}
Resultado: Cada caixa terá a imagem de fundo redimensionada de uma forma diferente, de acordo com o valor de background-size aplicado.
Propriedade Abreviada (background)
Lembre-se que você pode combinar background-image, background-repeat, background-position e background-size (e outras propriedades de fundo) na propriedade abreviada background.
Quando usar background-size na abreviação, ela vem depois de background-position, separada por uma barra (/).
Sintaxe na abreviação:
seletor {
background: [background-image] [background-repeat] [background-attachment] [background-position] / [background-size] [background-color];
}
Exemplo:
.box-cover {
background: url("https://via.placeholder.com/600x300/007bff/fff?text=Image") no-repeat center / cover #f0f0f0;
}
Dominar background-size é crucial para garantir que suas imagens de fundo se ajustem perfeitamente ao layout, sejam responsivas e transmitam a intenção visual desejada.