--- title: visibility slug: Web/CSS/visibility tags: - CSS - Propriété - Reference translation_of: Web/CSS/visibility ---
{{CSSRef}}

La propriété visibility peut être utilisée afin de cacher un élément tout en conservant occupé l'espace dans lequel il aurait été visible. Elle permet aussi de masquer des lignes ou des colonnes dans un tableau (cf. {{HTMLElement("table")}}).

{{EmbedInteractiveExample("pages/css/visibility.html")}}

Note : Afin de cacher un élément et de le retirer de la disposition du document, on utilisera plutôt la propriété {{cssxref("display")}} avec la valeur none.

Syntaxe

/* Avec un mot-clé */
visibility: visible;
visibility: hidden;
visibility: collapse;

/* Valeurs globales */
visibility: inherit;
visibility: initial;
visibility: unset;

La propriété visibility est définie avec l'un des mots-clés suivants.

Valeurs

visible
La valeur par défaut, la boîte est visible.
hidden
La boîte est invisible (totalement transparente, rien n'est dessiné) mais continue d'avoir un impact sur la disposition. Les fils de l'élément seront visibles s'ils ont visibility:visible. L'élément ne pourra plus recevoir le focus (cf. la navigation au clavier avec les tabulations).
collapse

Le mot-clé collapse a différents effets selon les éléments :

Syntaxe formelle

{{csssyntax}}

Interpolation

Les valeurs de visibilité peuvent être interpolées entre visible et masqué. L'une des valeurs de début ou de fin doit donc être visible, sinon il n'y aura pas d'interpolation. L'interpolation est discrète (passage direct d'un état à l'autre), les valeurs supérieures à 0 sont considérées équivalentes à visible. On pourra plutôt utiliser {{cssxref("opacity")}} pour créer un effet doux plutôt que de masquer/rendre visible l'élément brusquement.

Exemples

Exemple simple

HTML

<p>
  On peut dire tout ce qu'on veut ici,
  ce ne sera pas lisible de toute façon.
</p>
<p class="coucou">
  Alors que là, on a la bonne classe.
  Coucou tout le monde :)
</p>
<p>
  Et on repasse en mode invisible.
</p>

CSS

p {
  /* les paragraphes ne seront pas visibles */
  visibility: hidden;
}

p.coucou {
  /* sauf ceux avec la classe coucou */
  visibility: visible;
}

Résultat

{{EmbedLiveSample("Exemple_simple")}}

Exemple sur un tableau

HTML

<table>
  <tr>
    <td>Jean</td>
    <td>Biche</td>
  </tr>
  <tr class="col">
    <td>Hit</td>
    <td>Girl</td>
  </tr>
  <tr>
    <td>Super</td>
    <td>Cochon</td>
  </tr>
</table>

CSS

tr.col {
  /* les lignes de tableau avec la classe */
  /* col seront repliées */
  visibility: collapse;
}

Résultat

{{EmbedLiveSample("Exemple_sur_un_tableau")}}

Accessibilité

Utiliser la propriété visibility avec la valeur hidden retirera l'objet de l'arbre d'accessibilité. Les éléments ciblés, ainsi que leurs éléments descendants ne seront plus annoncés par les lecteurs d'écran.

Notes

Spécifications

Spécification État Commentaires
{{SpecName('CSS3 Flexbox', '#visibility-collapse', 'visibility')}} {{Spec2('CSS3 Flexbox')}} Définition de la valeur collapse pour les éléments flexibles.
{{SpecName('CSS3 Box', '#visibility-prop', 'visibility')}} {{Spec2('CSS3 Box')}} Aucune modification.
{{SpecName('CSS3 Transitions', '#animatable-css', 'visibility')}} {{Spec2('CSS3 Transitions')}} visibility peut désormais être animée.
{{SpecName('CSS2.1', 'visufx.html#visibility', 'visibility')}} {{Spec2('CSS2.1')}} Définition initiale.

{{cssinfo}}

Compatibilité des navigateurs

{{Compat("css.properties.visibility")}}

Voir aussi