CSS - Fundos

-

Propriedades de Fundo

background-color

A propriedade background-color define a cor de fundo de um elemento. Você pode especificar a cor usando formatos como nomes de cores, valores RGB, HEX ou HSL.

Exemplo: Nome da Cor

background-color: red;

Isso define a cor de fundo como vermelho usando um nome de cor. Você também pode usar valores RGB:

Exemplo: Valores RGB

background-color: rgb(255, 0, 0);

Valores HEX:

Exemplo: Valores HEX

background-color: #ff0000;

ou valores HSL:

Exemplo: Valores HSL

background-color: hsl(0, 100%, 50%);

Você pode controlar a transparência com valores RGBA ou HSLA. Por exemplo:

Exemplo: Valores RGBA

background-color: rgba(255, 0, 0, 0.5);

background-image

A propriedade background-image define uma ou mais imagens de fundo para um elemento usando a função url().

Exemplo: Imagem Única

background-image: url('image.jpg');

Isso define "image.jpg" como a imagem de fundo. Para definir várias imagens:

Exemplo: Múltiplas Imagens

background-image: url('image1.jpg'), url('image2.jpg');

background-repeat

A propriedade background-repeat controla como uma imagem de fundo se repete dentro de um elemento.

  • repeat: Repete tanto horizontalmente quanto verticalmente (padrão).
  • repeat-x: Repete apenas horizontalmente.
  • repeat-y: Repete apenas verticalmente.
  • no-repeat: Exibe uma vez sem repetir.

Exemplo: Sem Repetição

background-repeat: no-repeat;

background-attachment

A propriedade background-attachment especifica se uma imagem de fundo deve rolar com a página ou permanecer fixa.

  • scroll: O valor padrão; faz com que role com o conteúdo.
  • fixed: Mantém fixa na posição.

Exemplo: Fixação Fixa

background-attachment: fixed;

background-position

A propriedade background-position permite controlar onde uma imagem de fundo é colocada dentro de um elemento. Você pode especificar a posição usando palavras-chave, porcentagens ou valores de comprimento. Valores comuns de palavras-chave são top, bottom, left, right e center.

Exemplo: Topo Direita

background-position: top right;

Você também pode usar porcentagens ou valores de comprimento para posicionar a imagem com precisão, como:

Exemplo: Porcentagens

background-position: 50% 50%;

Exemplo: Valores de Comprimento

background-position: 100px 200px;

background-size

A propriedade background-size é usada para redimensionar imagens de fundo. Você pode especificar o tamanho usando palavras-chave ou dimensões específicas. Valores comuns de palavras-chave são auto, cover e contain.

  • Auto exibe a imagem em seu tamanho original.
  • Cover dimensiona a imagem para cobrir todo o elemento, cortando se necessário para manter a proporção.
  • Contain dimensiona a imagem para caber dentro do elemento, preservando sua proporção.

Você também pode especificar dimensões exatas usando valores de comprimento ou porcentagens, como:

Exemplo: Dimensões Específicas

background-size: 200px 300px;

Exemplo: Dimensões em Porcentagem

background-size: 50% 50%;

background-origin

A propriedade background-origin especifica onde uma imagem de fundo é posicionada em relação ao modelo de caixa do elemento. Os valores possíveis são padding-box, border-box e content-box.

  • Padding-box posiciona em relação ao preenchimento do elemento.
  • Border-box posiciona em relação à borda do elemento.
  • Content-box posiciona em relação ao conteúdo do elemento.

Exemplo: Border Box

background-origin: border-box;

background-clip

A propriedade background-clip define até onde um fundo se estende dentro do modelo de caixa de um elemento. Os valores possíveis são border-box, padding-box e content-box.

  • Border-box estende até a borda externa da borda do elemento.
  • Padding-box recorta até a borda externa do preenchimento do elemento.
  • Content-box recorta até a borda externa do conteúdo do elemento.

Exemplo: Padding Box

background-clip: padding-box;

Essas propriedades oferecem muitas opções para controlar fundos em CSS. Use-as sozinhas ou em conjunto para criar fundos bonitos e responsivos para suas páginas web.

Propriedade Resumida de Plano de Fundo

A propriedade resumida background permite definir várias propriedades de plano de fundo em uma única declaração. Isso pode tornar seu código CSS mais curto e fácil de ler.

A ordem dos valores na propriedade resumida é:

Exemplo: Ordem dos valores da propriedade resumida de plano de fundo

background: <background-color> <background-image> <background-repeat> <background-attachment> <background-position> / <background-size>;

Você pode combinar estas propriedades de plano de fundo:

Exemplo: Combinação de propriedades individuais de plano de fundo

background-color: #ff0000;
background-image: url('image.jpg');
background-repeat: no-repeat;
background-attachment: fixed;
background-position: center;
background-size: cover;

Em uma única declaração resumida:

Exemplo: Declaração resumida para propriedades de plano de fundo

background: #ff0000 url('image.jpg') no-repeat fixed center / cover;

Observe que o valor de background-size é separado do valor de background-position por uma barra (/).

Ao usar a propriedade resumida, os valores omitidos serão definidos com seus valores padrão. Se você quiser que todas as propriedades de plano de fundo sejam explicitamente definidas, inclua todos os valores necessários na declaração resumida.

O uso da propriedade resumida background pode ajudar a simplificar seu código CSS e torná-lo mais fácil de manter. No entanto, se você precisa definir apenas uma ou duas propriedades de plano de fundo, pode ser mais legível usar propriedades individuais em vez da forma resumida.

Múltiplos Planos de Fundo

O CSS permite que você sobreponha várias imagens de fundo em um único elemento. Essa técnica pode criar efeitos visuais interessantes e adicionar profundidade aos seus designs.

Para especificar várias imagens de fundo, você pode usar uma lista separada por vírgulas de valores de imagem de fundo na propriedade background-image ou na propriedade abreviada background.

Exemplo: Sobrepondo Duas Imagens de Fundo

.element {
  background-image: url('image1.jpg'), url('image2.jpg');
}

Você também pode combinar várias imagens de fundo com outras propriedades. Ao usar a propriedade abreviada background, os valores para cada camada são separados por vírgulas.

Exemplo: Combinando Várias Imagens de Fundo com Propriedades

.element {
  background: url('image1.jpg') no-repeat center, 
              url('image2.jpg') repeat-x top;
}

Você também pode especificar diferentes tamanhos, posições e outras propriedades para cada camada.

Exemplo: Especificando Diferentes Tamanhos e Posições

.element {
  background: url('image1.jpg') no-repeat center/cover,
              url('image2.jpg') repeat-x top/50% auto;
}

Ao usar múltiplos planos de fundo, a primeira imagem especificada ficará no topo. As imagens subsequentes serão dispostas abaixo dela na ordem em que são declaradas.

Múltiplos planos de fundo oferecem opções para criar designs visualmente ricos usando CSS. Experimente diferentes combinações de imagens, posições, tamanhos e outras propriedades para alcançar os efeitos desejados.

Gradientes de Fundo

O CSS permite criar transições de cores conhecidas como gradientes para fundos. Você pode criar gradientes lineares ou radiais sem usar arquivos de imagem, resultando em tempos de carregamento mais rápidos.

Para criar um gradiente linear, use a função linear-gradient() como valor para a propriedade background ou background-image. Especifique a direção do gradiente e as cores entre as quais você deseja fazer a transição.

Exemplo: Gradiente Linear

.element {
  background: linear-gradient(to right, red, blue);
}

Isso cria um gradiente que faz a transição do vermelho na esquerda para o azul na direita. Você pode especificar a direção usando palavras-chave como to top, to bottom, to left, to right, ou um ângulo em graus.

As paradas de cor controlam onde cada transição de cor ocorre. Por padrão, as transições são distribuídas uniformemente, mas você pode especificar porcentagens ou comprimentos para controlar suas posições.

Exemplo: Gradiente Linear com Paradas de Cor

.element {
  background: linear-gradient(to right, red 0%, blue 50%, green 100%);
}

Para criar um gradiente radial, use a função radial-gradient(). Especifique a posição central, forma (círculo ou elipse) e as paradas de cor.

Exemplo: Gradiente Radial

.element {
  background: radial-gradient(circle at center, red, blue);
}

Isso cria um gradiente circular centralizado dentro do elemento que faz a transição do vermelho no centro para o azul nas bordas.

Você pode criar gradientes mais complexos especificando várias paradas de cor e usando transparência.

Exemplo: Gradiente Complexo

.element {
  background: linear-gradient(45deg, rgba(255, 0, 0, 0.5), rgba(0, 0, 255, 0.5));
}

Os gradientes podem ser combinados com outras propriedades de fundo como background-size e background-repeat para criar vários efeitos.

Exemplo: Gradiente Repetitivo

.element { 
  background: repeating-linear-gradient(45deg, red, blue 10%);
} 

Os gradientes CSS oferecem uma maneira de criar fundos visualmente atraentes sem depender de arquivos de imagem. Experimente diferentes cores, direções e paradas de cor para alcançar os efeitos desejados.

Mistura de Plano de Fundo

A propriedade background-blend-mode no CSS permite misturar imagens de fundo e cores dentro de um elemento. Isso cria efeitos visuais combinando vários planos de fundo usando diferentes modos de mistura.

Os modos de mistura disponíveis são:

  • normal: O modo padrão; nenhuma mistura é aplicada.
  • multiply: Multiplica a cor de fundo com a imagem, resultando em um efeito mais escuro.
  • screen: Multiplica o inverso da cor de fundo com a imagem, resultando em um efeito mais claro.
  • overlay: Aplica uma combinação de multiply e screen com base na cor de fundo.
  • darken: Seleciona os valores de cor mais escuros da imagem e da cor de fundo.
  • lighten: Seleciona os valores de cor mais claros da imagem e da cor de fundo.

Outros modos de mistura incluem: color-dodge, color-burn, hard-light, soft-light, difference, exclusion, hue, saturation, color, e luminosity.

Para usar a mistura de fundo, aplique vários planos de fundo a um elemento e depois especifique o modo de mistura desejado com a propriedade.

Exemplo: Mistura de Plano de Fundo com Múltiplas Imagens

.element {
  background-image: url('image1.jpg'), url('image2.jpg');
  background-blend-mode: multiply;
}

Neste exemplo, image1.jpg e image2.jpg são misturadas usando o modo, criando um efeito de sobreposição mais escuro.

Você também pode misturar imagens com cores.

Exemplo: Mistura de Plano de Fundo com Imagem e Cor

.element {
  background: url('image.jpg'), #ff0000;
  background-blend-mode: screen;
}

Aqui, o modo é usado para misturar a imagem com uma cor vermelha, resultando em um efeito mais claro.

Se você tiver vários planos de fundo, pode especificar vários modos para cada camada.

Exemplo: Múltiplos Modos de Mistura de Plano de Fundo

.element {
  background: url('image1.jpg'), url('image2.jpg'), #ff0000;
  background-blend-mode: multiply, overlay;
}

Neste caso, você usa um modo para misturar duas imagens, depois outro modo para combiná-las novamente, mas agora incluindo o vermelho também.

A mistura de plano de fundo abre muitas possibilidades criativas para combinar imagens e cores. Experimentar ajudará a alcançar os efeitos desejados.

Opacidade de Fundo

A opacidade de cores e imagens de fundo em CSS pode ser controlada usando a propriedade opacity ou usando valores de cor RGBA ou HSLA.

A propriedade opacity define a opacidade geral de um elemento, incluindo seu conteúdo e fundo. Ela aceita um valor entre 0 (totalmente transparente) e 1 (totalmente opaco).

Exemplo: Propriedade Opacity

.element {
  background-color: #ff0000;
  opacity: 0.5;
}

Neste exemplo, a cor de fundo do elemento é definida como vermelho, e a opacidade é definida como 0.5, tornando-o 50% transparente.

No entanto, usar a propriedade opacity afeta o elemento inteiro, incluindo seu conteúdo. Se você quiser controlar apenas a opacidade da cor ou imagem de fundo sem afetar o conteúdo, pode usar valores de cor RGBA ou HSLA.

RGBA significa Vermelho, Verde, Azul, Alpha; onde alpha representa a opacidade. HSLA significa Matiz, Saturação, Luminosidade, Alpha; com alpha servindo ao mesmo propósito.

Exemplo: Valor de Cor RGBA

.element {
  background-color: rgba(255, 0, 0, 0.5);
}

Neste exemplo, a cor de fundo é definida como vermelho com uma opacidade de 0.5 usando o valor de cor RGBA. O conteúdo permanece totalmente opaco.

Você também pode usar valores de cor RGBA ou HSLA com imagens de fundo.

Exemplo: RGBA com Imagem de Fundo

.element {
  background-image: linear-gradient(rgba(255, 0, 0, 0.5), rgba(0, 0, 255, 0.5)), 
                    url('image.jpg');
}

Aqui, um gradiente linear com cores vermelha e azul transparentes é sobreposto a uma imagem de fundo. A própria imagem permanece totalmente opaca, enquanto as cores do gradiente são semitransparentes.

Usar RGBA ou HSLA permite controlar a transparência independentemente do conteúdo, proporcionando flexibilidade na criação de designs visualmente interessantes.

Padrões de Fundo

Padrões de fundo adicionam textura e interesse visual às suas páginas web. Você pode criar padrões de fundo repetitivos usando imagens pequenas e técnicas de CSS para repetição contínua.

Para criar um padrão de fundo repetitivo, comece selecionando ou criando uma imagem pequena que possa ser replicada de forma contínua. A imagem deve ter bordas que se encaixem quando repetidas horizontal e verticalmente.

Padrão Simples

Exemplo: Padrão Simples

.element {
  background-image: url('pattern.png');
  background-repeat: repeat;
}

Este código define a imagem de fundo como "pattern.png" e a repete tanto horizontal quanto verticalmente para criar um padrão contínuo.

Você pode usar a propriedade background-repeat com o valor repeat. Isso replicará a imagem em ambas as direções para preencher o fundo do elemento.

Se você quiser que o padrão se repita em apenas uma direção, pode usar repeat-x para repetição horizontal ou repeat-y para repetição vertical.

Repetição de Padrão Horizontal

Exemplo: Repetição de Padrão Horizontal

.element {
  background-image: url('pattern.png');
  background-repeat: repeat-x;
}

Outra técnica para criar padrões contínuos é usar gradientes CSS com imagens de fundo. Ao sobrepor um gradiente semitransparente sobre a imagem do padrão, você pode criar um efeito mais sutil.

Padrão com Sobreposição de Gradiente

Exemplo: Padrão com Sobreposição de Gradiente

.element {
  background-image: linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)), 
                    url('pattern.png');
  background-repeat: repeat;
}

Este código aplica um gradiente branco semitransparente sobre a imagem de padrão repetitivo, criando um efeito mais suave.

Ao criar padrões de fundo, considere o tamanho do arquivo de imagem. Usar imagens maiores pode afetar o tempo de carregamento da página; é melhor usar imagens pequenas e otimizadas para padrões. Você também pode usar sprites CSS para combinar várias imagens de padrão em um único arquivo, reduzindo as solicitações HTTP.

Padrões de fundo adicionam profundidade e interesse visual aos seus designs web. Usando imagens pequenas e contínuas e técnicas CSS como background-repeat e gradientes, você pode criar fundos envolventes para suas páginas web.

Imagens de Fundo Responsivas

O design web responsivo proporciona experiências ideais aos usuários em diferentes dispositivos. Usar imagens de fundo responsivas significa fornecer tamanhos e resoluções de imagem apropriados com base no tamanho da tela do visualizador.

Uma técnica é servir diferentes arquivos de imagem com base no tamanho da tela do dispositivo. Você pode definir várias propriedades background-image usando media queries.

Imagens de Fundo Responsivas com Media Queries

Exemplo: Imagens de Fundo Responsivas com Media Queries

.element {
  background-image: url('small-image.jpg');
}

@media (min-width: 768px) {
  .element {
    background-image: url('medium-image.jpg');
  }
}

@media (min-width: 1200px) {
  .element {
  background-image: url('large-image.jpg');
  }
}

Este código define uma imagem de fundo pequena padrão. À medida que os tamanhos de tela aumentam para 768px e 1200px de largura, as imagens de tamanho médio e grande são usadas.

Você também pode usar a função image-set() para especificar vários arquivos de imagem com diferentes resoluções. O navegador escolhe a imagem mais adequada com base na densidade de pixels do dispositivo.

Imagens de Fundo Responsivas com image-set()

Exemplo: Imagens de Fundo Responsivas com image-set()

.element {
  background-image: image-set(
    url('image-1x.jpg') 1x,
    url('image-2x.jpg') 2x
  );
}

"image-1x.jpg" é usada em telas padrão, enquanto "image-2x.jpg" (resolução dupla) é usada em telas de alta densidade de pixels, como as telas Retina.

Outra abordagem é usar gradientes CSS em vez de arquivos de imagem. Os gradientes são independentes de resolução e se adaptam bem a diferentes tamanhos de tela.

Fundo Responsivo com Gradiente

Exemplo: Fundo Responsivo com Gradiente

.element {
  background-image: linear-gradient(to right, #ff0000, #0000ff);
}

Considere usar padrões baseados em vetores (SVGs) em vez de imagens raster. Os SVGs escalam sem perder qualidade, tornando-os ideais para designs responsivos.

Fundo Responsivo com SVG

Exemplo: Fundo Responsivo com SVG

.element {
  background-image: url('pattern.svg');
}

Ao planejar seus fundos responsivos, considere seus dispositivos-alvo, resoluções de tela e o impacto visual que deseja alcançar. Combine técnicas como media queries, image-set(), gradientes CSS e SVGs para criar fundos atraentes que se adaptem bem a diferentes telas.