W3docs

Propriedade CSS opacity

A propriedade CSS opacity define o nível de transparência de um elemento. Experimente exemplos da propriedade opacity e veja os resultados.

A propriedade CSS opacity define o grau de transparência de um elemento. Ela controla o elemento por completo — texto, fundo, bordas e quaisquer elementos filhos ficam desbotados juntos. É uma das propriedades do CSS3.

Use opacity quando quiser que um elemento (e tudo dentro dele) pareça desbotado: para escurecer um botão inativo, criar um efeito de hover ou sobrepor uma marca d'água ao conteúdo.

Como o valor de opacity funciona

O valor é um número entre 0 e 1:

  • 0 — o elemento é totalmente transparente (invisível, mas ainda ocupa espaço e permanece interativo).
  • 1 — o valor padrão; o elemento é totalmente opaco.
  • Qualquer valor intermediário, como 0.5, torna o elemento parcialmente transparente. Valores menores significam maior transparência.

Também é possível escrever o valor como uma porcentagem nos navegadores modernos, onde 50% equivale a 0.5.

Informação

Valores negativos são inválidos e são limitados — o navegador trata qualquer valor abaixo de 0 como 0 e qualquer valor acima de 1 como 1.

Dica

A opacidade afeta os elementos filhos também. Quando você desbota um elemento pai, todos os filhos são desbotados junto, e você não pode tornar um filho totalmente opaco novamente atribuindo opacity: 1 a ele. Se você quiser apenas um fundo semitransparente mantendo o texto e os filhos sólidos, use uma cor RGBA no background-color — por exemplo, background-color: rgba(142, 191, 66, 0.3).

Informação

Um elemento com valor de opacity menor que 1 cria um novo contexto de empilhamento. Isso pode alterar a forma como ele se sobrepõe a elementos vizinhos, fazendo com que um elemento desbotado apareça acima ou abaixo de irmãos de forma diferente do esperado.

Valor Inicial1.0
Aplica-se aTodos os elementos.
HerdadoNão.
AnimávelSim.
VersãoCSS3
Sintaxe DOMobject.style.opacity = "0.3";

Sintaxe

Sintaxe CSS da propriedade opacity

opacity: number | initial | inherit;

Exemplo da propriedade opacity:

Exemplo de código CSS com opacity

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .example1 {
        background-color: #8ebf42;
        opacity: 0.3;
      }
      .example2 {
        background-color: #8ebf42;
        opacity: 1;
      }
    </style>
  </head>
  <body>
    <h2>Opacity property example</h2>
    <h3>Opacity level is 0.3;</h3>
    <div class="example1"> Lorem Ipsum is dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. </div>
    <h3>Opacity level is 1;</h3>
    <div class="example2">Lorem Ipsum is dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.</div>
  </body>
</html>

Resultado

Três imagens com opacity 1.0, 0.6 e 0.2

No exemplo abaixo, o nível de opacidade da primeira imagem é 1.0, da segunda imagem é 0.6 e da terceira imagem é 0.2.

Exemplo da propriedade opacity com três níveis de opacidade:

Outro exemplo de código CSS com opacity

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      img.a {
        opacity: 1;
      }
      img.b {
        opacity: 0.6;
      }
      img.c {
        opacity: 0.2;
      }
    </style>
  </head>
  <body>
    <h2>Opacity property example</h2>
    <h3>Opacity: 1.0;</h3>
    <img src="/uploads/media/default/0001/01/4982c4f43023330a662b9baed5a407e391ae6161.jpeg" alt="house" width="300" height="300" class="a" />
    <h3>Opacity: 0.6;</h3>
    <img src="/uploads/media/default/0001/01/4982c4f43023330a662b9baed5a407e391ae6161.jpeg" alt="house" width="300" height="300" class="b" />
    <h3>Opacity: 0.2;</h3>
    <img src="/uploads/media/default/0001/01/4982c4f43023330a662b9baed5a407e391ae6161.jpeg" alt="house" width="300" height="300" class="c" />
  </body>
</html>

opacity vs. fundos RGBA

Um erro comum é usar opacity quando se deseja apenas um fundo semitransparente. Como opacity desbota os elementos filhos também, o texto dentro de uma caixa fica mais fraco e difícil de ler. Uma cor de fundo RGBA aplica transparência apenas à cor de fundo, mantendo o texto totalmente opaco:

/* Fades the whole box, including the text */
.with-opacity {
  background-color: #8ebf42;
  opacity: 0.3;
}

/* Only the background is transparent; text stays crisp */
.with-rgba {
  background-color: rgba(142, 191, 66, 0.3);
}

Para controlar a cor do próprio elemento, consulte background-color.

Efeito de desbotamento no hover

Como opacity é animável, combina naturalmente com transition para criar efeitos de transição suave, como desbotar uma imagem até o usuário passar o cursor sobre ela:

.thumb {
  opacity: 0.6;
  transition: opacity 0.3s ease;
}

.thumb:hover {
  opacity: 1;
}

opacity vs. visibility e display

opacity: 0, visibility: hidden e display: none ocultam um elemento, mas se comportam de formas diferentes:

DeclaraçãoVisívelOcupa espaçoClicável
opacity: 0NãoSimSim
visibility: hiddenNãoSimNão
display: noneNãoNãoNão

Um elemento com opacity: 0 é invisível, mas ainda responde a cliques. Adicione pointer-events: none se precisar que ele também não seja interativo.

Valores

ValorDescriçãoExperimente
numberDefine o nível de opacidade. O valor padrão é 1.0.Experimente »
initialFaz a propriedade usar seu valor padrão.Experimente »
inheritHerda a propriedade do elemento pai.

Prática

Prática
O que é a propriedade 'opacity' no CSS e como ela é usada?
O que é a propriedade 'opacity' no CSS e como ela é usada?
Was this page helpful?