CSS

opacity

中級

読み方:オパシティ|英語:Opacity

要素の透明度を指定するプロパティで、0(完全に透明)〜1(不透明)の値を取るよ。いつ使う? 要素をフェードイン・フェードアウトさせたい、背景を半透明にしたい、無効なボタンを薄く表示したいときに使うよ。間違いやすいポイント: opacityは子要素にも影響するよ。親にopacity: 0.5を指定すると中のテキストも半透明になる。背景だけ半透明にしたいならbackground: rgba(0,0,0,0.5); を使おう。

やさしい説明

opacityは、要素の透明度を指定するプロパティです。0で完全に透明、1で完全に不透明になります。

窓ガラスの透明度をイメージしてください。opacity: 1 は普通のガラス(向こうが見えない)、opacity: 0.5 は半透明のすりガラス、opacity: 0 は完全に透明です。

フェードイン・フェードアウトのアニメーションに使われます。transitionと組み合わせると滑らかに表示/非表示を切り替えられます。

具体例・使い方

/* 半透明にする */
.overlay { opacity: 0.5; }

/* ホバーでフェードイン */
.card { opacity: 0.7; transition: opacity 0.3s; }
.card:hover { opacity: 1; }

/* 非表示(透明だがスペースは残る) */
.hidden { opacity: 0; }

いつ使う?

画像の上に半透明のオーバーレイを重ねるとき、フェードアニメーション、無効状態のボタンを薄く表示するときに使います。

間違いやすいポイント

❌ opacity: 0 で非表示にしてもクリックできてしまう

opacityは見た目を透明にするだけで、要素は存在し続けます。完全に非表示にしたい場合は display: nonevisibility: hidden を使いましょう。

❌ 子要素だけ不透明にできない

親にopacityを指定すると子要素も一緒に透明になります。背景だけ透明にしたい場合は rgba(0,0,0,0.5) を使いましょう。

よくある疑問

Q: opacityとrgbaの違いは?

A: opacityは要素全体(子要素含む)を透明にします。rgbaは背景色だけを半透明にでき、テキストは不透明のままです。

Q: opacityでフェードアニメーションするには?

A: transition: opacity 0.3s; を指定し、:hoverなどでopacityの値を変えます。display: noneの代わりにopacity: 0で非表示にするとアニメーションできます。

Q: opacity: 0 と visibility: hidden の違いは?

A: opacity: 0は透明だがクリックできる。visibility: hiddenは非表示でクリックもできない。どちらもスペースは確保されます。

関連用語

📖 関連レッスン

レッスンを見る →

関連ブログ記事

⚠️ 関連するエラー

❓ 関連するQ&A