Artigo original: HTML Background Color Tutorial – How to Change a Div Background Color, Explained with Code Examples

Uma das coisas mais comuns que se tem de fazer quando se é um desenvolvedor para a web é mudar a cor de fundo de um elemento HTML. Porém, pode ser algo que cause confusão se você não entender como usar a propriedade background-color do CSS.

Neste artigo, discutiremos

  • o valor padrão da cor de fundo de um elemento HTML
  • como mudar a cor de fundo de uma div, que é um elemento bastante comum
  • que partes do box model do CSS são afetadas pela propriedade background-color, e
  • os diferentes valores que essa propriedade pode receber.

Cor de fundo padrão de um elemento

A cor de fundo padrão de uma é transparent. Assim, se você não especificar background-color em uma div, ela exibirá a cor de seu elemento pai.

Como mudar a cor de fundo de uma div

Neste exemplo, mudaremos as cores de fundo das divs a seguir.

<div class="div-1"> I love HTML </div>
<div class="div-2"> I love CSS </div>
<div class="div-3"> I love JavaScript </div>

Se não colocarmos estilo algum, a tradução visual disso será algo como o exemplo abaixo.

Screen-Shot-2020-05-08-at-12.22.48-PM

Vamos mudar a cor de fundo das divs adicionando estilos às classes. Siga o código abaixo e experimente fazer conforme o exemplo em um arquivo HTML.

<style>
    .div-1 {
        background-color: #EBEBEB;
    }
    
    .div-2 {
    	background-color: #ABBAEA;
    }
    
    .div-3 {
    	background-color: #FBD603;
    }
</style>

<body>
    <div class="div-1"> I love HTML </div>
    <div class="div-2"> I love CSS </div>
    <div class="div-3"> I love JavaScript </div>
</body>

O resultado será o seguinte:

Screen-Shot-2020-05-08-at-11.12.29-AM-1

Legal! Alteramos com sucesso as cores de fundo dessas divs. Em seguida, vamos conhecer um pouco mais sobre essa propriedade. Vamos ver como a propriedade background-color afeta partes do box model do CSS.

Cor de fundo e o box model do CSS

De acordo com o box model do CSS, todos os elementos HTML podem ser modelados como caixas retangulares. Cada caixa é composta de 4 partes, como mostra o diagrama abaixo.

Screen-Shot-2020-05-08-at-11.07.00-AM-1
Box model (modelo de caixas) do CSS

Leia mais sobre o box model se não estiver familiarizado com ele. A questão é saber qual parte do box model é afetada quando você muda a cor de fundo de uma div? A resposta simples é a área de preenchimento (padding) e a área do conteúdo (content). Vamos confirmar isso usando um exemplo.


<style>
    body {
        background-color: #ABBAEA;
    }
    div {
        height: 200px;
        margin: 20px;
        border: 5px solid;
        background-color: #FBD603;
    }
</style>
<body>
    <div>
        <p>This is the parent div which contains the div we are testing</p>
        <!--Tradução: Essa é a div pai, que contém a div que estamos testando-->
        <div>
            <p>This example shows that changing the background color of a div does not affect the border and margin of the div.</p>
            <!--Tradução: Esse exemplo mostra que alterar a cor de fundo de uma div não altera a borda e a margem da div.-->
        </div>
    </div>
</body>


O resultado disso será:

Screen-Shot-2020-05-08-at-11.07.10-AM-1

A partir do exemplo acima, podemos ver que as áreas da margem (margin) e da borda (border) não são afetadas pela mudança na cor de fundo. Podemos mudar a cor da borda usando a propriedade border-color. A área da margem permanece transparente e reflete a cor de fundo do contêiner pai.

Por fim, vamos discutir os valores que a propriedade background-color pode ter.

Valores de background-color

Assim como a propriedade color, a propriedade background-color pode receber seis tipos de valores diferentes. Vamos considerar os três valores mais comuns, com um exemplo. Nele, definiremos background-color para a div como vermelha (red) com valores diferentes.

<style>
    /* Valor/nome como palavra-chave da cor */
    .div-1 {
        background-color: red;
    }
    
    /* Valor hexadecimal */
    .div-2 {
       background-color: #FF0000;	 
    }
    
    /* Valor RGB */
    .div-3 {
    	background-color: rgb(255,0,0);
    }
    
</style>

<body>
    <div class="div-1">
        <p>The background property can take six different values.</p>
        <!--Tradução: A propriedade background pode receber seis valores diferentes para a cor.-->
    </div>

    <div class="div-2">
        <p>The background property can take six different values.</p>
        <!--Tradução: A propriedade background pode receber seis valores diferentes para a cor.-->
    </div>

    <div class="div-3">
        <p>The background property can take six different values.</p>
        <!--Tradução: A propriedade background pode receber seis valores diferentes para a cor.-->
    </div>
</body>

Observe que todos os resultados têm a mesma cor de fundo.

Screen-Shot-2020-05-08-at-11.07.24-AM-1

Outros valores que a propriedade background-color pode ter incluem os valores HSL, valores com palavra-chave especial e valores globais. Aqui vão exemplos de cada um deles.

/* Valor HSL */
background-color: hsl(0, 100%, 25%;

/* Valor com palavra-chave especial */
background-color: currentcolor; /*cor atual*/
background-color: transparent; /*transparente*/

/* Valores globais */
background-color: inherit; /*herdar*/
background-color: initial; /*valor inicial*/
background-color: unset; /*remover definição*/

Você pode ler mais sobre cada um desses valores aqui.

Observação adicional

Ao definir a cor de fundo de um elemento, é importante garantir que a taxa de contraste da cor de fundo e da cor do texto seja suficientemente alta. Isso garante que pessoas com capacidade mais baixa de visão possam ler o texto com facilidade.

Considere as duas divs abaixo.

Screen-Shot-2020-05-08-at-11.11.44-AM-1

O contraste entre a cor de fundo da primeira div (que diz 'Isso não está claro para que todos possam ler.') e a cor do texto não é suficientemente alta para que todos possam ler. Por isso, a menos que você seja o único a utilizar o site que você está criando e que você tenha uma boa visão, é bom evitar esse tipo de combinação de cores.

A segunda div (que diz 'Isso está claro para que todos possam ler.') tem uma taxa de contraste muito melhor entre a cor de fundo e a cor do texto. Assim, ele é mais acessível e mais claro para que todos possam ler.

Conclusão

Neste artigo, vimos como você pode mudar a propriedade background-color de uma div. Também discutimos quais partes do box model do CSS são afetadas pela mudança na background-color. Por fim, discutimos os valores que a propriedade background-color pode receber.

Espero que esse artigo tenha sido útil. Obrigado pela leitura.