カテゴリ: CSS 更新日: 2026/09/06

CSSで要素を非表示にする方法!display:noneの使い方と注意点

display: none で非表示にする方法と注意点
display: none で非表示にする方法と注意点

先生と生徒の会話形式で理解しよう

生徒

「先生、CSSで特定の要素を画面に表示させたくない時はどうすればいいですか?」

先生

「その場合は、displayプロパティのnoneを使うと簡単に非表示にできます。」

生徒

「display:noneって聞いたことがあります。でも、どんな影響がありますか?」

先生

「display:noneは、その要素を完全に消すので、画面上だけでなくHTML上のスペースもなくなります。注意点を含めて詳しく見ていきましょう。」

1. display:noneで要素を非表示にする方法

1. display:noneで要素を非表示にする方法
1. display:noneで要素を非表示にする方法

CSSの「display:none」は、指定したHTML要素をブラウザの画面上から完全に取り除く設定です。単に見えなくなるだけでなく、その要素が占めていたスペースも詰められるため、まるで最初からその場所に何もなかったかのようなレイアウトになります。

プログラミング未経験の方でも直感的に使いやすく、例えば「特定のボタンを押した時だけメニューを出す」といった動的なWebサイトを作る際によく活用されます。まずは、基本となる書き方を確認してみましょう。特定のクラスに対して display: none; を指定するだけで、その要素を消し去ることができます。


<style>
    /* 通常の表示 */
    .visible-box {
        background-color: #e0f7fa;
        padding: 15px;
        border: 2px solid #00acc1;
        margin-bottom: 10px;
    }

    /* display:none を適用した非表示の要素 */
    .hidden-box {
        display: none;
        background-color: #ffebee;
        padding: 15px;
        border: 2px solid #e53935;
    }
</style>

<div class="visible-box">
    <i class="bi bi-info-circle"></i> このボックスは表示されています。
</div>

<div class="hidden-box">
    <i class="bi bi-exclamation-triangle"></i> このボックスは display:none が設定されているため、表示されません。
</div>

<p>
    <i class="bi bi-arrow-up"></i> 上記の2つのボックスの間に本来はあるはずの赤いボックスが、跡形もなく消えているのがわかります。
</p>
ブラウザ表示

上記のコード例では、2つのdivタグを記述していますが、画面には青いボックスしか表示されていません。display:noneを指定した赤いボックス(hidden-box)は、高さや幅の情報も無視され、後続のテキストが上に詰められています。

このプロパティは、レスポンシブデザイン(スマホとパソコンで表示を切り替える手法)でも頻繁に使用されます。例えば「スマホではこの画像を出さない」といった制御が、CSS1行で簡単に行えるのが大きなメリットです。

2. display:noneとvisibility:hiddenの違い

2. display:noneとvisibility:hiddenの違い
2. display:noneとvisibility:hiddenの違い

要素を隠す方法は「display:none」だけではありません。「visibility:hidden」という設定もよく使われますが、この2つには「レイアウト上のスペースが残るかどうか」という決定的な違いがあります。

初心者の方向けに一言で説明すると、display:noneは「存在そのものを消去する」のに対し、visibility:hiddenは「透明人間にしてその場に立たせておく」というイメージです。この違いを理解していないと、要素を消した拍子に周囲のレイアウトがガタガタに崩れてしまう原因になります。

以下のサンプルコードで、それぞれの消え方の違いを比較してみましょう。青いボックスは完全に消えますが、赤いボックスは「見えないけれど、そこにある」状態になります。


<style>
    .box-container {
        border: 1px solid #ccc;
        padding: 10px;
    }
    .box {
        width: 100px;
        height: 50px;
        color: white;
        text-align: center;
        line-height: 50px;
        margin-bottom: 5px;
    }
    /* display:none はスペースごと消える */
    .hidden-display {
        display: none;
        background-color: #007bff;
    }
    /* visibility:hidden はスペースが残る */
    .hidden-visibility {
        visibility: hidden;
        background-color: #dc3545;
    }
    .normal-box {
        background-color: #28a745;
    }
</style>

<div class="box-container">
    <p>1. 下の青いボックスは display:none で消えています。</p>
    <div class="box hidden-display">display:none</div>
    
    <div class="box normal-box">次は赤いボックス</div>
    
    <p>2. 下の赤いボックスは visibility:hidden で見えませんが、隙間があります。</p>
    <div class="box hidden-visibility">visibility:hidden</div>
    
    <div class="box normal-box">一番下の要素</div>
</div>
ブラウザ表示

使い分けのポイントは非常にシンプルです。メニューの開閉などのように、消した時に後ろの要素を詰めたい場合は「display:none」を選びます。一方で、要素は見せたくないけれど、レイアウトの位置関係を絶対に変えたくない(ガタつかせたくない)という特殊なケースでは「visibility:hidden」を活用しましょう。

3. display:noneを使う際の注意点

3. display:noneを使う際の注意点
3. display:noneを使う際の注意点

display:noneは非常に便利なプロパティですが、使い方を誤るとWebサイトの使い勝手やGoogleからの評価に影響を与えることがあります。プログラミング初心者の方が特に気をつけたいポイントを4つにまとめました。

  • 操作ができなくなる: 要素が画面から消えるため、その場所にあるはずのボタンをクリックしたり、中のテキストをコピーしたりすることは一切できなくなります。
  • SEO(検索エンジン対策)への影響: Googleなどの検索エンジンは非表示コンテンツも認識しますが、ユーザーに見せない隠しテキストとして悪用すると、ペナルティを受けるリスクがあります。ただし、タブ切り替えなど「ユーザーの利便性」のためであれば問題ありません。
  • 再表示には設定が必要: 一度消した要素をJavaScriptなどで再び見せたい場合、元の「display: block」や「display: flex」などを正しく指定し直す必要があります。
  • アニメーションが効かない: display:noneは「パッと消える」設定です。ふわっと消えるようなアニメーションを作りたい場合は、opacity(透明度)など別の設定を使うのが一般的です。

例えば、初心者がやりがちなミスとして「ボタンを消したつもりが、レイアウトが崩れてしまった」というケースがあります。以下のサンプルで、注意点を確認してみましょう。


<style>
    .notice-box {
        background-color: #fff3cd;
        padding: 15px;
        border-left: 5px solid #ffc107;
        margin-bottom: 20px;
    }
    /* このクラスを付けると完全に消える */
    .is-hidden {
        display: none;
    }
    .main-text {
        font-size: 16px;
        color: #333;
    }
</style>

<div class="notice-box is-hidden">
    <i class="bi bi-info-circle"></i> このメッセージは display:none なので、検索エンジンには読まれても、ユーザーの目には入りません。
</div>

<div class="main-text">
    <p>上のボックスは display:none が設定されているため、存在しないものとして扱われ、この文章が一番上に詰められて表示されています。</p>
    <p>もし、SEOのために重要なキーワードを hidden(非表示)の中に詰め込みすぎると、不自然なサイトと判断される可能性があるため注意しましょう。</p>
</div>
ブラウザ表示

非表示の仕組みを正しく理解することは、単に見栄えを整えるだけでなく、検索エンジンに正しく情報を伝え、ユーザーにとって使いやすいサイトを作るための第一歩です。モーダルウィンドウやスマホ用メニューの作成など、実戦でもこの注意点を意識して活用してください。

4. display:noneの実践例:ボタンで切り替える

4. display:noneの実践例:ボタンで切り替える
4. display:noneの実践例:ボタンで切り替える

例えば、ボタンをクリックしてテキストを非表示・表示する場合、JavaScriptと組み合わせてdisplay:noneを切り替えることが多いです。こうすることで、ページの見た目を整えつつ、必要に応じて要素を表示できます。


<style>
    .toggle-box {
        display: none;
        background-color: #f0e68c;
        width: 200px;
        height: 50px;
        text-align: center;
        line-height: 50px;
        margin-bottom: 10px;
    }
</style>

<button id="toggleBtn">表示・非表示切替</button>
<div class="toggle-box" id="toggleBox">切替対象のボックス</div>

<script>
    const btn = document.getElementById("toggleBtn");
    const box = document.getElementById("toggleBox");
    btn.addEventListener("click", function() {
        if(box.style.display === "none") {
            box.style.display = "block";
        } else {
            box.style.display = "none";
        }
    });
</script>
ブラウザ表示

この方法を覚えておくと、動的に要素を表示・非表示できるので、ユーザーインターフェースを工夫する幅が広がります。

5. レスポンシブデザインでのdisplay:none活用術

5. レスポンシブデザインでのdisplay:none活用術
5. レスポンシブデザインでのdisplay:none活用術

最近のWebサイト制作において、display:noneが最も活躍するのが「レスポンシブデザイン」です。これは、パソコンとスマートフォンで表示する内容を切り替える手法です。

例えば、「パソコンでは横に長い大きな画像を見せたいけれど、画面の小さなスマホでは文字が潰れてしまうので非表示にしたい」といった場合に非常に便利です。特定の画面サイズ(ブレイクポイント)になった時だけdisplay:noneを適用することで、ユーザーにストレスを与えない最適なレイアウトを提供できます。


<style>
    /* パソコンで見える大きな画像(スマホでは隠す) */
    .pc-only-banner {
        background-color: #e3f2fd;
        padding: 20px;
        border: 2px solid #2196f3;
        text-align: center;
    }

    /* 画面幅が600px以下(スマホ想定)の場合の設定 */
    @media (max-width: 600px) {
        .pc-only-banner {
            display: none;
        }
    }
</style>

<div class="pc-only-banner">
    <i class="bi bi-laptop"></i> PCで見るとこの大きなバナーが表示されます。
</div>

<p>ブラウザの幅を狭めていくと、上記の青いバナーが消えるのがわかります。これがレスポンシブデザインの基本です。</p>
ブラウザ表示

ただし、あまりに多くの要素をdisplay:noneで隠すと、ページの読み込み速度に影響が出る場合があります。本当に隠すべきかどうか、ユーザーの利便性を考えて使い分けましょう。

6. display:noneとアクセシビリティ(読み上げ機能)

6. display:noneとアクセシビリティ(読み上げ機能)
6. display:noneとアクセシビリティ(読み上げ機能)

Webサイトを作る上で忘れてはならないのが、視覚障害を持つ方が利用する「スクリーンリーダー(音声読み上げソフト)」への対応です。これをアクセシビリティと呼びます。

重要なポイントとして、display:noneを指定した要素は、スクリーンリーダーでも読み上げられないという性質があります。つまり、画面から消えるだけでなく、音声ブラウザを利用しているユーザーにとっても「存在しないもの」として扱われます。

もし、「画面上には出したくないけれど、音声では情報を伝えたい(例:アイコンボタンの意味など)」という場合は、display:noneではなく、要素を画面の外に飛ばすCSSテクニックなどを使う必要があります。用途に合わせて、正しく使い分けることがプロへの第一歩です。

7. display:noneを使いこなそう

7. display:noneを使いこなそう
7. display:noneを使いこなそう

今回学習した「display:none」は、要素を完全に消去してレイアウトを詰める、非常に強力なプロパティです。visibility:hiddenとの違いや、JavaScriptとの連携、レスポンシブ対応など、活用できる場面は多岐にわたります。

今回のポイント

  • display:noneは要素もスペースも完全に消し去る
  • レイアウトを残したい時はvisibility:hiddenを使う
  • スマホ対応や動的なギミック(メニュー開閉など)に必須の技術
  • SEOやアクセシビリティへの影響を理解して正しく使う

これらの基本をしっかり押さえておくことで、初心者から一歩抜け出した、より高度で使い勝手の良いWebサイト制作ができるようになります。まずは簡単なボタンの切り替えから練習を始めてみてくださいね。

2026年最新 スキルアップ・実践セミナー

【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー

「魅せる力」をコードで実現。CSS3でモダンWebデザインのプロトタイピングを。

本講座では、単に色を変えるだけではなく、「ユーザーを迷わせないUIデザイン」と「崩れないレイアウト設計」の本質を学びます。最新のCSS3とモダンなレイアウト手法を通じて、プロの現場で通用する「美しさと機能性を両立した実装力」を最短距離で習得します。

具体的なワークショップ内容と環境

【つくるもの】
HTMLで作成した骨組みに対し、商用サイトでも採用される「スタイリッシュなカード型UI」や「レスポンシブなナビゲーション」を構築します。色の選定基準や余白(ホワイトスペース)の黄金比など、デザインの理論をコードに落とし込む工程を体験してください。

【開発環境】
フロントエンド開発の標準であるVisual Studio Code (VS Code)を継続使用。CSSの記述を効率化するプラグインや、ブラウザのデベロッパーツール(検証機能)を駆使して、リアルタイムでデザインを微調整するプロのワークフローを再現します。

この60分で得られる3つの技術資産

1. 現代のデファクトスタンダード「Flexbox」

要素の横並びや中央揃えを自由自在に操り、どんなデバイスでも崩れないレスポンシブな配置術を完全理解します。

2. メンテナンス性を高めるCSS設計の基礎

後から修正しやすい「壊れにくいコード」の書き方を伝授。プロの現場で必須となる命名規則の考え方を学びます。

3. パフォーマンスと美しさの両立

画像の最適化や軽量な装飾技法など、ページの表示速度を落とさずに高級感のある演出を行うテクニックを習得します。

※本講座は、HTMLの基礎を終えた後のステップアップ講座です。Webデザイナー、UIデザイナー、フロントエンドエンジニアへの道を切り開く「魅せる技術」を、モクモク独自のパーソナル指導で着実に定着させます。

【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー

リラックスしながら、学ぶことが大切です。しっかりと基礎を理解しましょう!

各回少人数・マンツーマン形式で徹底サポート

このセミナーの詳細・お申し込みはこちら
カテゴリの一覧へ
新着記事
New1
HTML
HTMLマルチデバイス設計で欠かせないアクセシビリティ配慮を徹底解説!初心者でもわかる実践ポイント
New2
HTML
HTMLのvideoタグでpreload属性を使う方法!動画の読み込み最適化を初心者向けに解説
New3
Bootstrap
Bootstrap Iconsとは?特徴・導入方法・Font Awesomeとの違いを初心者向けに完全解説
New4
Bootstrap
BootstrapのSass変数を完全ガイド!初心者でもわかる色・余白・フォント設定
人気記事
No.1
Java&Spring記事人気No1
HTML
HTMLのimgタグの書き方|src・altの必須属性を初心者向けにやさしく整理
No.2
Java&Spring記事人気No2
HTML
HTML inputタグとは?フォーム入力を担う基本要素を初心者向けに完全解説
No.3
Java&Spring記事人気No3
CSS
CSSのnth-child()を完全攻略!特定の順番にスタイルを当てる方法
No.4
Java&Spring記事人気No4
CSS
ナビゲーションバーの作り方!初心者でもわかるHTMLとCSSの基本構成とスタイル装飾
No.5
Java&Spring記事人気No5
CSS
CSSのpositionプロパティ完全ガイド!初心者でもわかる表示と位置指定
No.6
Java&Spring記事人気No6
Bootstrap
Bootstrap 5ボタン入門:.btn・.btn-primaryの種類とサイズ・形を初心者向けに完全解説
No.7
Java&Spring記事人気No7
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.8
Java&Spring記事人気No8
HTML
HTML input type="email"の入力チェック仕様と注意点を徹底解説 初心者向け完全ガイド