Shorthand background: Atalho para todas as propriedades de fundo

Aprenda a usar a propriedade background para definir várias propriedades de fundo de uma vez.

Você já aprendeu sobre as diversas propriedades de fundo: background-color, background-image, background-repeat, background-position, background-size e background-attachment. Definir cada uma delas individualmente pode ser um pouco trabalhoso e deixar seu CSS mais longo do que o necessário.

É aí que entra a propriedade shorthand background. Ela é um atalho poderoso que permite definir todas (ou quase todas) as propriedades de fundo em uma única linha de código.

Pense na propriedade background como um "pacote completo" para pintar uma parede. Em vez de comprar a tinta, o rolo, a fita crepe e o pincel separadamente, você compra um kit que já vem com tudo, e você só precisa especificar as características de cada item do kit.

Como usar a propriedade background

A propriedade background aceita uma lista de valores para as diferentes propriedades de fundo. A ordem dos valores importa para algumas combinações, mas é bastante flexível para outras.

Sintaxe Geral:

seletor {
  background: [background-color] [background-image] [background-repeat] [background-attachment] [background-position] / [background-size];
}

Observações Importantes sobre a Sintaxe:

  • Ordem: A ordem dos valores é geralmente flexível, exceto para background-position e background-size. Se ambos estiverem presentes, background-size deve vir depois de background-position, separado por uma barra (/).
  • Valores Omitidos: Qualquer propriedade de fundo que não for explicitamente definida na shorthand background assumirá seu valor inicial/padrão. Por exemplo, se você não especificar background-repeat, ele será repeat.
  • Múltiplos Fundos: Você pode definir múltiplos fundos para um elemento, separando cada conjunto de propriedades por uma vírgula. A ordem importa: o primeiro fundo na lista estará no topo (mais próximo do usuário).

Exemplos Práticos:

Considere o seguinte HTML:

<!DOCTYPE html>
<html lang="pt-BR">
<head>
  <meta charset="UTF-8">
  <title>Shorthand Background</title>
  <style>
    body {
      font-family: sans-serif;
      margin: 0;
      height: 1500px; /* Para forçar a rolagem da página */
    }
    .box {
      width: 300px;
      height: 200px;
      border: 2px solid #333;
      margin: 20px;
      display: inline-block;
      vertical-align: top;
      color: white;
      text-align: center;
      line-height: 200px; /* Para centralizar o texto verticalmente */
      font-weight: bold;
    }
  </style>
</head>
<body>
  <div class="box box-simples">
    Fundo Simples
  </div>
  <div class="box box-completo">
    Fundo Completo
  </div>
  <div class="box box-fixo">
    Fundo Fixo
  </div>
  <div class="box box-multiplo">
    Fundo Múltiplo
  </div>
</body>
</html>

Agora, vamos aplicar os estilos usando a shorthand background:

/* Exemplo 1: Apenas cor de fundo */
.box-simples {
  background: lightblue; /* background-color: lightblue; */
}

/* Exemplo 2: Imagem, repetição, posição e cor de fallback */
.box-completo {
  background: url("https://via.placeholder.com/50x50/ff0000/fff?text=X") no-repeat center #333;
  /* Equivalente a:
     background-image: url("...");
     background-repeat: no-repeat;
     background-position: center;
     background-color: #333;
  */
}

/* Exemplo 3: Imagem, repetição, posição, tamanho e attachment */
.box-fixo {
  background: url("https://via.placeholder.com/1200x600/007bff/fff?text=Fixo") no-repeat center / cover fixed #555;
  /* Equivalente a:
     background-image: url("...");
     background-repeat: no-repeat;
     background-position: center;
     background-size: cover;
     background-attachment: fixed;
     background-color: #555;
  */
}

/* Exemplo 4: Múltiplos fundos */
.box-multiplo {
  background:
    url("https://via.placeholder.com/20x20/00ff00/000?text=.") repeat-x top, /* Padrão verde no topo */
    url("https://via.placeholder.com/50x50/ff0000/fff?text=X") no-repeat bottom right, /* Ícone vermelho no canto */
    linear-gradient(to bottom, #ffcc00, #ff6600); /* Gradiente de cor como fundo principal */
  /*
    Note que a ordem importa: o padrão verde está por cima do ícone vermelho, que está por cima do gradiente.
    A cor de fundo sólida (background-color) só pode ser definida uma vez e sempre será a última camada.
  */
}

Resultado: Cada caixa terá um fundo diferente, demonstrando a flexibilidade da propriedade background.

Boas Práticas com a Shorthand background

  • Consistência: Use a shorthand para manter seu código mais limpo e conciso.
  • Legibilidade: Embora seja um atalho, tente manter a ordem lógica dos valores para facilitar a leitura. A ordem image repeat attachment position / size color é uma boa referência.
  • Valores Padrão: Lembre-se que propriedades não especificadas assumem seus valores padrão. Isso pode ser uma vantagem (menos código) ou uma desvantagem (se você esquecer e quiser um valor diferente do padrão).
  • Múltiplos Fundos: É uma técnica avançada e muito poderosa para criar designs complexos com menos elementos HTML.

A propriedade background é uma ferramenta essencial para qualquer desenvolvedor CSS, permitindo um controle eficiente e conciso sobre todos os aspectos do fundo de um elemento.