TECH BLOG

マークリープス技術ブログ

open

[CSS] display: none;、opacity: 0;、overflow: hidden; の違いと使い分け

[CSS] display: none;、opacity: 0;、overflow: hidden; の違いと使い分け

Web制作で「要素を見えなくしたい」と思ったとき、どのCSSプロパティを使いますか?
display: none;? opacity: 0;? overflow: hidden;?

これら3つはいずれも「見えなくなる」効果がありますが、意味や挙動はまったく異なります。
目的に合わないプロパティを使うと、ユーザー体験やSEO・アクセシビリティに悪影響を及ぼす可能性も。

この記事では、それぞれの違いと使い分けのコツを、特徴や実例とともにわかりやすく解説します。

display: none; とは?

display: none; は、要素を完全に非表示にするCSSプロパティです。

・表示領域から完全に削除され、DOMツリー上でも「存在しない」ように扱われます
・要素のサイズや影響もすべて消えるため、他の要素が詰めて表示されます
 

特徴

・要素は見えず、スペースも取りません
・マウスイベントやフォーカスも無効になります
・スクリーンリーダーにも読み上げられません

opacity: 0; とは?

opacity: 0; は、要素を透明にするプロパティです。

・要素はDOM上に存在し、レイアウトにも影響します
・見た目は透明ですが、クリックや読み上げの対象にはなります
 

特徴

・要素は見えませんが、スペースは残ります
・マウス操作やキーボード操作が可能です
・アニメーションとの相性が良い

overflow: hidden; とは?

overflow: hidden; は、子要素がはみ出す部分を非表示にするプロパティです

・要素そのものは表示されており、サイズも維持されます
・見える範囲だけを制限する目的で使用されます
 

特徴

・要素自体は表示されています
・スクロールを許可せず、見える範囲を制御します
・スライダーやカードUIなど、視覚的なトリミングに便利

見た目は似てる?3つの違いを比較表で確認

「見えなくなる」効果は似ていますが、動作や意味には大きな違いがあります。
以下の表で、主な違いを整理しておきましょう。

プロパティ DOMに存在 スペースを取る クリック可 読み上げ対象 主な用途
display: none; × × × × 完全非表示、
要素を除外
opacity: 0; フェード演出など
overflow: hidden;
(範囲内)
スクロール制限、
視覚トリミング

よくある使い方と注意点

完全に非表示にするなら display: none;

タブ切り替えや条件による要素の出し分けに適しています。
DOMから除外されるため、アクセス性もなくなります。
 

フェードイン・アウトには opacity: 0;

アニメーションで自然に表示・非表示を演出したいときに便利です。
display ではアニメーションできないため注意。
 

はみ出しを防ぎたいときは overflow: hidden;

レイアウト崩れや意図しないスクロールを防ぐのに役立ちます。
スライダーやモーダルの表示領域制限にもよく使われます。
 

注意点

・opacity: 0; で要素を隠しても、SEO上は「見えている」と認識される可能性があります
・overflow: hidden; を使うと、子要素のアニメーションやポップアップが途中で切れてしまうことがあります

まとめ:どれを使えばいい?ケース別おすすめ

それぞれの用途に合ったプロパティを選ぶことで、見た目だけでなく構造的にも正しいCSSが書けます。

ケース おすすめプロパティ
完全にDOMから除外したい display: none;
アニメーションでふわっと消したい opacity: 0;
はみ出し部分だけ隠したい overflow: hidden;

同じ「見えなくする」でも、意味や効果は異なります。
用途に合ったプロパティを選んで、ユーザーにもコードにもやさしいCSS設計を目指しましょう。

よく読まれている関連記事

関連最新記事