CSSで要素を非表示にする方法!display:noneの使い方と注意点
生徒
「先生、CSSで特定の要素を画面に表示させたくない時はどうすればいいですか?」
先生
「その場合は、displayプロパティのnoneを使うと簡単に非表示にできます。」
生徒
「display:noneって聞いたことがあります。でも、どんな影響がありますか?」
先生
「display:noneは、その要素を完全に消すので、画面上だけでなくHTML上のスペースもなくなります。注意点を含めて詳しく見ていきましょう。」
1. display:noneで要素を非表示にする方法
CSSのdisplayプロパティにnoneを指定すると、指定した要素は画面上から完全に消えます。これは「非表示」にする方法の中でも最も強力です。通常、不要な広告や一時的なコンテンツ、モーダルウィンドウを表示・非表示する時に使われます。
<style>
.hidden-box {
display: none;
background-color: lightcoral;
width: 200px;
height: 50px;
text-align: center;
line-height: 50px;
}
</style>
<div class="hidden-box">このボックスは非表示です</div>
<p>この下の文章は表示されます。</p>
ブラウザ表示
上記の例では、divのボックスはdisplay:noneで画面上に表示されません。HTML上には存在していますが、目に見えず、他の要素がその場所を占めます。
2. display:noneとvisibility:hiddenの違い
非表示にする方法はdisplay:noneだけではありません。visibility:hiddenも使えますが違いがあります。visibility:hiddenは要素を見えなくしますが、スペースはそのまま残ります。display:noneは要素自体の存在を画面から消すので、周りのレイアウトに影響を与えます。
<style>
.invisible-box {
visibility: hidden;
background-color: lightblue;
width: 200px;
height: 50px;
text-align: center;
line-height: 50px;
}
</style>
<div class="invisible-box">見えませんがスペースは残ります</div>
<p>この文章はボックスの下に表示されます。</p>
ブラウザ表示
display:noneとvisibility:hiddenの使い分けは、レイアウトに影響を与えるかどうかで判断すると分かりやすいです。
3. display:noneを使う際の注意点
- 非表示にした要素は画面上に存在しないため、クリックやスクロールなどの操作はできません。
- 検索エンジン(Googleなど)ではdisplay:noneの内容を読み取ることがありますが、重要なコンテンツを隠すとSEO評価に影響する可能性があります。
- JavaScriptと組み合わせる場合、display:noneの要素を再表示するにはdisplay:blockやdisplay:inline-blockなどを指定する必要があります。
- アニメーションで非表示にしたい場合は、opacityやtransformなどの別手法も検討することがあります。
非表示の扱い方を理解することで、モーダル表示、タブ切り替え、ボタンの表示制御など、ウェブページの動的なデザインが簡単に作れるようになります。
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>
ブラウザ表示
この方法を覚えておくと、動的に要素を表示・非表示できるので、ユーザーインターフェースを工夫する幅が広がります。
【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー
「魅せる力」をコードで実現。CSS3でモダンWebデザインのプロトタイピングを。
本講座では、単に色を変えるだけではなく、「ユーザーを迷わせないUIデザイン」と「崩れないレイアウト設計」の本質を学びます。最新のCSS3とモダンなレイアウト手法を通じて、プロの現場で通用する「美しさと機能性を両立した実装力」を最短距離で習得します。
具体的なワークショップ内容と環境
【つくるもの】
HTMLで作成した骨組みに対し、商用サイトでも採用される「スタイリッシュなカード型UI」や「レスポンシブなナビゲーション」を構築します。色の選定基準や余白(ホワイトスペース)の黄金比など、デザインの理論をコードに落とし込む工程を体験してください。
【開発環境】
フロントエンド開発の標準であるVisual Studio Code (VS Code)を継続使用。CSSの記述を効率化するプラグインや、ブラウザのデベロッパーツール(検証機能)を駆使して、リアルタイムでデザインを微調整するプロのワークフローを再現します。
この60分で得られる3つの技術資産
要素の横並びや中央揃えを自由自在に操り、どんなデバイスでも崩れないレスポンシブな配置術を完全理解します。
後から修正しやすい「壊れにくいコード」の書き方を伝授。プロの現場で必須となる命名規則の考え方を学びます。
画像の最適化や軽量な装飾技法など、ページの表示速度を落とさずに高級感のある演出を行うテクニックを習得します。
※本講座は、HTMLの基礎を終えた後のステップアップ講座です。Webデザイナー、UIデザイナー、フロントエンドエンジニアへの道を切り開く「魅せる技術」を、モクモク独自のパーソナル指導で着実に定着させます。
リラックスしながら、学ぶことが大切です。しっかりと基礎を理解しましょう!
各回少人数・マンツーマン形式で徹底サポート
このセミナーの詳細・お申し込みはこちら