言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

CSS辞典

  1. トップページ
  2. CSS辞典
  3. visibility

visibility

要素の表示、非表示を指定します。

サンプルコード

style.css
div.test { visibility: visible;}
div.test1 { visibility: hidden;}
table tr td { visibility: collapse;}

指定可能な値一覧

概要
visible要素を表示します。この『visible』が初期値です。
hidden要素を非表示にします。非表示にした場合もその要素の領域は残ります。
collapseテーブル要素の行や列を非表示にします。非表示にした場合はその要素が存在するはずだった領域は詰まって表示されます。この値をテーブル要素の行や列以外に指定した場合は『hidden』が指定されているものとして反映されます。

ブラウザでの表示結果

<p style="visibility: visible;">ここはp要素です。『visibility: visible』と指定しています。</p>

<p style="visibility: hidden;">ここはp要素です。</p>

<table style="border: solid 1px red;">
<tr style="visibility: collapse;">
	<td style="border: solid 1px;">ここはtd要素です。</td>
	<td style="visibility: collapse; border: solid 1px;">ここはtd要素です。</td>
	<td style="border: solid 1px;">ここはtd要素です。</td>
</tr>
<tr>
	<td style="border: solid 1px;">ここはtd要素です。</td>
	<td style="visibility: collapse; border: solid 1px;">ここはtd要素です。</td>
	<td style="border: solid 1px;">ここはtd要素です。</td>
</tr>
<tr>
	<td style="border: solid 1px;">ここはtd要素です。</td>
	<td style="border: solid 1px;">ここはtd要素です。</td>
	<td style="border: solid 1px;">ここはtd要素です。</td>
</tr>
</table>

概要

要素の表示、非表示を指定します。

注意点として、非表示にした場合でもその要素の領域はそのまま残ります。テーブル要素の列や行の大きさの計算も、非表示にした要素が存在するものとして演算されますのでご注意ください。要素を完全に存在しないものとして構築したい場合は『display』プロパティに『none』と指定します。

尚、WebKitエンジンを搭載しているブラウザ(chrome, safari, opera, android系の標準ブラウザ)において、『collapse』と指定しても要素が詰まって表示されないバグが確認されています。ですので『collapse』の値は使用を避けることが多いですが、バグが修正されたブラウザ環境では利用されることもあります。

よくあるミス

display: noneとvisibility: hiddenの違いを混同してしまう

『visibility: hidden』は要素を視覚的に非表示にしますが、要素の領域はそのまま残ります。一方『display: none』は要素を完全に取り除き、レイアウト上の領域も消えます。用途に応じて使い分けが必要です。

/* visibility: hidden → 領域は残るが見えない */
.box-a { visibility: hidden; }

/* display: none → 領域ごと消える */
.box-b { display: none; }

子要素にvisibility: visibleを指定すれば親のhiddenを打ち消せる

『visibility』プロパティは継承されます。親要素に『hidden』を指定した場合でも、子要素に『visible』を指定すれば子要素だけを表示することができます。これは『display: none』では実現できない動作です。

.parent { visibility: hidden; }

/* 子要素にvisibleを指定すると子要素だけ表示できる */
.parent .child { visibility: visible; }

対応ブラウザ

Chrome Chrome
1 以降
Firefox Firefox
1 以降
Safari Safari
1 以降
Edge Edge
12 以降
IE IE
11
10
9
8
7
6
Opera Opera
4 以降
3 以前 ×
iOS Safari iOS Safari
1 以降
Android Android Browser
4.4 以降
3 以前 ×
Chrome Android Chrome Android
最新版
デスクトップ版と同等の対応です
Firefox Android Firefox Android
最新版
デスクトップ版と同等の対応です

※ バージョン情報は MDN に基づいています。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。