要素の領域は確保しつつ非表示にする - visibility プロパティの利用 - CSS

要素の領域は確保しつつ、表示内容のみを非表示にしたい場合があります。この記事ではCSSで表示内容のみを非表示にする方法を紹介します。

概要

表示領域を確保しつつ、要素を非表示にするには、CSSのvisibility プロパティを利用します。
メモ
表示を非表示にして枠の領域も非表示にする場合はdisplayプロパティを利用します。詳細は「要素を非表示にする - display プロパティの利用」の記事を参照してください。

書式

visibility:hidden;

記述例

 visibility:hidden;

例1

コード

以下のHTMLファイルとCSSファイルを作成します。
page1.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title></title>
  <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
  <ul>
    <li>ワード1</li>
    <li>ワード2</li>
    <li>ワード3</li>
    <li class="invisibleFrame">ワード4</li>
    <li>ワード5</li>
    <li class="invisibleFrame">ワード6</li>
    <li>ワード7</li>
    <li>ワード8</li>
  </ul>
</body>
</html>
style.css
.invisibleFrame {
  visibility:hidden;
}

.nondisplayFrame {
  display:none;
}

解説

ワード4, ワード6のliタグに invisibleFrame クラスを指定して非表示に設定しています。

実行結果

上記のHTMLファイルをWebブラウザで表示します。下図のページが表示されます。
ワード4, ワード6が非表示になっていることがわかります。 ただし領域は確保されているため非表示になった部分が詰まらずに空欄になっていることも確認できます。

例2

コード

以下のHTMLファイルとCSSファイルを作成します。
page-visibility-frame.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title></title>
  <link rel="stylesheet" type="text/css" href="page-visibility-frame.css" />
</head>
<body>
  <div class="frame1">
    コンテンツ1
  </div>
  <div class="frame2">
    コンテンツ2
  </div>
  <div class="frame3">
    コンテンツ3
  </div>
</body>
</html>
page-visibility-frame.css
.frame1 {
  border:2px solid #0094ff;
  background-color:#a6daff;
  height:3rem;
}
.frame2 {
  border: 2px solid #ff6a00;
  background-color: #fff2a9;
  height: 3rem;
  visibility:hidden;
}
.frame3 {
  border: 2px solid #4cff00;
  background-color: #daffca;
  height: 3rem;
}

解説

2番目のdivタグに frame2 クラスを指定して非表示に設定しています。

実行結果

上記のHTMLファイルをWebブラウザで表示します。下図のページが表示されます。 2番目の枠が非表示になりますが、領域のエリアは確保された状態で間は詰まらないことが確認できます。

著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
掲載日: 2014-08-14
iPentec all rights reserverd.