W3docs

Propriedade CSS visibility

A propriedade CSS visibility define se o elemento é visível ou oculto. Veja exemplos e experimente você mesmo.

A propriedade CSS visibility controla se um elemento é exibido ou ocultado sem alterar o layout — um elemento oculto mantém exatamente o espaço que ocuparia se estivesse visível. Esta página aborda os três valores principais (visible, hidden, collapse), como visibility difere de display e opacity, as implicações de acessibilidade ao ocultar conteúdo e exemplos executáveis para cada valor.

O que a visibility faz

O valor mais utilizado é hidden. Ao definir visibility: hidden, o elemento se torna invisível, mas ainda ocupa seu espaço no layout — o conteúdo ao redor não se move para preencher a lacuna. O elemento também é removido da ordem de tabulação e não é anunciado pelos leitores de tela, portanto está genuinamente oculto para as tecnologias assistivas, não apenas visualmente.

Uma característica incomum: visibility é herdada, mas um elemento filho pode substituí-la. Se um elemento pai tiver visibility: hidden, um descendente com visibility: visible reaparecerá mesmo que seu ancestral esteja oculto.

O valor collapse tem tratamento especial para elementos relacionados a tabelas (<tr>, <col>, grupos de linhas, grupos de colunas). Nesses elementos, ele remove a linha ou coluna inteiramente — da forma como display: none faria — fazendo o restante da tabela refluar para fechar a lacuna, mas as larguras das colunas da tabela permanecem calculadas como se a linha ainda estivesse lá. Em elementos que não são de tabela, collapse se comporta simplesmente como hidden.

Aviso

O suporte dos navegadores para collapse em elementos de tabela é inconsistente: alguns motores o renderizam de forma idêntica ao hidden (a linha mantém seu espaço visível). Se você precisar que uma linha desapareça de verdade em todos os navegadores, use display: none no <tr> em vez disso.

visibility vs. display vs. opacity

Essas três propriedades todas "ocultam" um elemento, mas se comportam de forma diferente — escolher a errada é um erro comum.

PropriedadeMantém o espaço do layout?Na árvore de acessibilidade?Recebe eventos?
visibility: hiddenSimNãoNão
display: noneNão (colapsa)NãoNão
opacity: 0SimSimSim

Use visibility: hidden quando quiser reservar o espaço do elemento, mas ocultar seu conteúdo (por exemplo, alternando um espaço reservado sem que a página salte). Use display: none quando quiser que o elemento desapareça e o layout se feche. Use opacity: 0 somente quando quiser um elemento ainda interativo e ainda legível por leitores de tela — por exemplo, um elemento que você está exibindo ou ocultando com fade.

Como visibility é animável, você pode combiná-la com opacity para um fade-out que termina em um elemento completamente oculto e não interativo:

.fade {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.3s, visibility 0s linear 0.3s;
}
.fade.is-hidden {
  opacity: 0;
  visibility: hidden;
}
Valor inicialvisible
Aplica-se aTodos os elementos (collapse aplica-se apenas a elementos relacionados a tabelas).
HerdadaSim.
AnimávelSim.
VersãoCSS2
Sintaxe DOMObject.style.visibility = "collapse";

Sintaxe

Sintaxe da propriedade CSS visibility

visibility: visible | hidden | collapse | initial | inherit | revert | revert-layer;

Exemplo da propriedade visibility com o valor "hidden":

Exemplo da propriedade CSS visibility com o valor hidden

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      p {
        visibility: hidden;
      }
    </style>
  </head>
  <body>
    <h2>Visibility property example.</h2>
    <div>Here is some text for example.</div>
    <p>Text, which will not be displayed in browser.</p>
    <div>
      You see space above this sentence, but actually there is some text, which has visibility property with hidden value.
    </div>
  </body>
</html>

Resultado

Propriedade CSS visibility

Exemplo da propriedade visibility com os valores "visible" e "hidden":

Exemplo da propriedade CSS visibility com os valores visible e hidden

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .test1 {
        visibility: visible;
      }
      .test2 {
        visibility: hidden;
      }
    </style>
  </head>
  <body>
    <h2>Visibility property example</h2>
    <p class="test1">Lorem Ipsum is simply dummy text.</p>
    <p class="test2">Lorem Ipsum is simply dummy text.</p>
    <p>The space above is a hidden text.</p>
  </body>
</html>

Exemplo da propriedade visibility com o valor "collapse":

Exemplo da propriedade CSS visibility com o valor collapse

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .collapse {
        visibility: collapse;
      }
      table {
        border: 2px solid #666;
      }
      td {
        border: 1px solid #ccc;
      }
    </style>
  </head>
  <body>
    <h2>Visibility property example</h2>
    <p>Here the "collapse" value is applied.</p>
    <table>
      <tr>
        <td>10</td>
        <td class="collapse">100</td>
        <td>1000</td>
      </tr>
      <tr>
        <td>20</td>
        <td>200</td>
        <td>2000</td>
      </tr>
      <tr class="collapse">
        <td>30</td>
        <td>300</td>
        <td>3000</td>
      </tr>
      <tr>
        <td>40</td>
        <td>400</td>
        <td>4000</td>
      </tr>
    </table>
  </body>
</html>

Valores

ValorDescriçãoExperimente
visibleNeste caso, o elemento é visível. Este é o valor padrão desta propriedade.Experimente »
hiddenEste valor apenas oculta visualmente os elementos.Experimente »
collapseUsado com elementos de tabela específicos (linhas, grupos de linhas, colunas, grupos de colunas) para remover linhas ou colunas inteiras. Este valor tem o mesmo significado que "hidden" quando usado com outros elementos.Experimente »
initialFaz a propriedade usar seu valor padrão.Experimente »
inheritHerda a propriedade do seu elemento pai.
revertReverte a propriedade para seu valor herdado ou valor inicial, dependendo do que for aplicável.Experimente »
revert-layerReverte a propriedade para o valor definido na camada anterior da cascata.Experimente »

Propriedades relacionadas

  • CSS display — oculta um elemento e remove seu espaço do layout.
  • CSS opacity — torna um elemento transparente mantendo-o interativo.
  • CSS overflow — controla o conteúdo que transborda para fora de sua caixa.
  • CSS position — move elementos para fora do fluxo normal.

Prática

Prática
Quais são os possíveis valores da propriedade CSS 'visibility'?
Quais são os possíveis valores da propriedade CSS 'visibility'?
Was this page helpful?