Propriedades background-repeat e background-position
Controle como as imagens de fundo se repetem e onde elas são posicionadas.
Na lição anterior, você aprendeu a usar a background-image para colocar uma imagem no fundo de um elemento. Mas uma imagem de fundo raramente se comporta exatamente como você quer logo de cara. É aí que entram as propriedades background-repeat e background-position.
Elas são como as instruções que você dá para um pintor de paredes: "Cole este papel de parede uma vez no centro da parede" ou "Repita este padrão por toda a parede".
background-repeat: Controlando a Repetição
A propriedade background-repeat define se e como a imagem de fundo será repetida para preencher o espaço do elemento.
Sintaxe:
seletor {
background-repeat: valor;
}
Valores possíveis:
repeat(padrão): A imagem se repete tanto horizontalmente quanto verticalmente para cobrir todo o elemento.- Uso: Ideal para padrões pequenos e texturas que se encaixam perfeitamente.
no-repeat: A imagem aparece apenas uma vez no fundo do elemento.- Uso: Perfeito para logotipos, ícones ou imagens grandes que não devem ser duplicadas.
repeat-x: A imagem se repete apenas horizontalmente (ao longo do eixo X).- Uso: Bom para criar bordas horizontais ou padrões que se estendem lateralmente.
repeat-y: A imagem se repete apenas verticalmente (ao longo do eixo Y).- Uso: Bom para criar bordas verticais ou padrões que se estendem para cima e para baixo.
space: A imagem se repete o máximo de vezes possível sem cortar, e o espaço restante é distribuído uniformemente entre as imagens.round: A imagem se repete o máximo de vezes possível, e se não couber um número inteiro de repetições, as imagens são redimensionadas para que caibam.
background-position: Definindo a Posição
A propriedade background-position define a posição inicial da imagem de fundo dentro do elemento. Se a imagem não se repetir (no-repeat), esta propriedade é crucial para posicioná-la onde você deseja.
Sintaxe:
seletor {
background-position: valor-horizontal valor-vertical;
}
Valores possíveis:
Você pode usar palavras-chave, porcentagens ou unidades de comprimento (pixels, em, rem, etc.).
- Palavras-chave:
- Horizontal:
left,center,right - Vertical:
top,center,bottom - Exemplos:
top left,center center,bottom right,center top.- Se apenas um valor for fornecido, o segundo é assumido como
center. Ex:background-position: top;é o mesmo quetop center.
- Se apenas um valor for fornecido, o segundo é assumido como
- Horizontal:
- Porcentagens:
0% 0%é o mesmo quetop left.50% 50%é o mesmo quecenter center.100% 100%é o mesmo quebottom right.- Como funciona: A porcentagem se refere tanto à posição da imagem quanto à posição do elemento.
50% 50%significa que o ponto central da imagem é alinhado com o ponto central do elemento.
- Unidades de Comprimento (px, em, rem, etc.):
0px 0pxé o mesmo quetop left.10px 20pxposiciona a imagem 10px da esquerda e 20px do topo.
Exemplos Combinados:
Considere o seguinte HTML:
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Background Repeat e Position</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 */
}
</style>
</head>
<body>
<div class="box box-repeat">
<h3>Repeat (Padrão)</h3>
</div>
<div class="box box-no-repeat">
<h3>No-Repeat</h3>
</div>
<div class="box box-repeat-x">
<h3>Repeat-X</h3>
</div>
<div class="box box-repeat-y">
<h3>Repeat-Y</h3>
</div>
<div class="box box-position-center">
<h3>Position Center</h3>
</div>
<div class="box box-position-bottom-right">
<h3>Position Bottom Right</h3>
</div>
<div class="box box-position-pixels">
<h3>Position 20px 30px</h3>
</div>
</body>
</html>
Agora, vamos aplicar os estilos:
/* Imagem de exemplo (um pequeno ícone) */
.box {
background-image: url("https://via.placeholder.com/50x50/ff0000/fff?text=ICON");
}
.box-repeat {
background-repeat: repeat; /* Padrão, mas explícito */
}
.box-no-repeat {
background-repeat: no-repeat;
background-position: center center; /* Centraliza a imagem única */
}
.box-repeat-x {
background-repeat: repeat-x;
background-position: center top; /* Repete horizontalmente no topo */
}
.box-repeat-y {
background-repeat: repeat-y;
background-position: left center; /* Repete verticalmente à esquerda */
}
.box-position-center {
background-repeat: no-repeat;
background-position: center; /* O mesmo que center center */
}
.box-position-bottom-right {
background-repeat: no-repeat;
background-position: bottom right;
}
.box-position-pixels {
background-repeat: no-repeat;
background-position: 20px 30px; /* 20px da esquerda, 30px do topo */
}
Resultado: Cada caixa terá a imagem de ícone vermelha, mas se comportando de forma diferente em termos de repetição e posição.
Propriedade Abreviada (background)
Lembre-se que você pode combinar background-image, background-repeat e background-position (e outras propriedades de fundo) na propriedade abreviada background.
Exemplo:
.box-no-repeat {
background: url("https://via.placeholder.com/50x50/ff0000/fff?text=ICON") no-repeat center center;
}
Dominar background-repeat e background-position é essencial para ter controle total sobre a aparência das suas imagens de fundo, permitindo que você crie layouts precisos e visualmente atraentes.