visibility
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
visibility
は CSS のプロパティで、文書のレイアウトを変更することなく要素を表示したり非表示にしたりします。このプロパティは <table>
の行や列を隠すこともできます。
試してみましょう
visibility: visible;
visibility: hidden;
visibility: collapse;
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">隠れます</div>
<div>アイテム 2</div>
<div>アイテム 3</div>
</div>
</section>
.example-container {
border: 1px solid #c5c5c5;
padding: 0.75em;
width: 80%;
max-height: 300px;
display: flex;
}
.example-container > div {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
margin: 10px;
flex: 1;
}
#example-element {
background-color: rgb(255 0 200 / 0.2);
border: 3px solid rebeccapurple;
}
要素を不可視にしてレイアウトから除去するには、 visibility
を使用する代わりに display
プロパティを none
に設定してください。
構文
css
/* キーワード値 */
visibility: visible;
visibility: hidden;
visibility: collapse;
/* グローバル値 */
visibility: inherit;
visibility: initial;
visibility: revert;
visibility: revert-layer;
visibility: unset;
visibility
プロパティは、以下の一覧にあるキーワード値のうちの一つで指定します。
値
アクセシビリティ
要素の visibility
の値に hidden
を使用すると、 アクセシビリティツリーから削除されます。これは要素及びその子孫要素が読み上げ技術でアナウンスされない結果になります。
補間
visibility の値は可視及び不可視の間で補間可能です。従って、開始または終了の値の一つが visible
でない限りは、補間は行われません。値は離散的なステップとして補間され、タイミング関数の 0
と 1
間の値が、 visible
に対応し、タイミング関数の他の値 (トランジションの開始点または終了点でのみ、または [0、1] の外側の y 値を有する cubic-bezier()
関数の結果として) はより近い終了点に対応します。
メモ
- 一部の現行ブラウザーでは、
visibility: collapse
が対応していないか、一部不正確です。テーブルの行と列以外の要素では、visibility: hidden
と同様に正しく処理されない場合があります。 - テーブルの行に適用した場合、テーブルに、表示されている行と折りたたまれている行の両方にまたがるセル (
<td>
および<th>
要素) が含まれていると、セルが予期しない方法でレンダリングされる場合があります。またがるセルが折りたたまれた行で定義されている場合、ブラウザーは、後続の行のセルがvisibility: collapse
が適用されているかのように、表のセルをレンダリングしません。セルが、表示されている行で定義され、折りたたまれた行にまたがっている場合、セルのコンテンツは再配置されませんが、セル自体の表示はブラウザーによって異なります。ほとんどのブラウザーは、非表示の行のブロックサイズだけ、セルのブロックサイズを縮小します。これは、コンテンツがブロックサイズの方向にセルよりも大きくなる場合があることを意味しています。ブラウザーによっては、あふれたコンテンツはoverflow: hidden
が設定されているかのように切り捨てられますが、他のブラウザーではoverflow: visible
が設定されているかのように、コンテンツが次の行に流れ込みます。それ以外のブラウザーでは、セルは行が折りたたまれていないかのようにレンダリングされ、行内の他のすべてのセルは、行自体ではなく個々のセルにvisibility: collapse
が設定されているかのように非表示になります。 visibility: collapse
は、折りたたまれたセル内に表が入れ子になっている場合、入れ子になった表にvisibility: visible
が明示的に指定されていない限り、表のレイアウトを変更する可能性があります。
公式定義
初期値 | visible |
---|---|
適用対象 | すべての要素 |
継承 | あり |
計算値 | 指定通り |
アニメーションの種類 | visibility |
形式文法
visibility =
visible |
hidden |
force-hidden |
collapse
例
>基本的な例
HTML
html
<p class="visible">最初の段落は表示されています。</p>
<p class="not-visible">2 つ目の段落は表示されません。</p>
<p class="visible">
3 つ目の段落が表示されています。 2 つ目の段落がまだ空間を占めていることに注目してください。
</p>
CSS
css
.visible {
visibility: visible;
}
.not-visible {
visibility: hidden;
}
表の例
HTML
html
<table>
<tr>
<td>1.1</td>
<td class="collapse">1.2</td>
<td>1.3</td>
</tr>
<tr class="collapse">
<td>2.1</td>
<td>2.2</td>
<td>2.3</td>
</tr>
<tr>
<td>3.1</td>
<td>3.2</td>
<td>3.3</td>
</tr>
</table>
CSS
css
.collapse {
visibility: collapse;
}
table {
border: 1px solid red;
}
td {
border: 1px solid gray;
}
仕様書
Specification |
---|
CSS Display Module Level 3> # visibility> |
Scalable Vector Graphics (SVG) 2> # VisibilityControl> |
ブラウザーの互換性
Loading…
関連情報
display
- SVG の
visibility
属性