CSSだけで作るモーダルウィンドウの実装方法|軽量でJS不要のテクニック
スポンサーリンク

こんにちは!静岡県浜松市でWEBデザイナーをしています小瀧です。

モーダルウィンドウといえば、JavaScriptで表示・非表示を切り替える実装が一般的です。
しかし、最近ではCSSだけでシンプルなモーダルを実現する方法も注目されています。

この記事では、checkboxや:target擬似クラスを活用し、一切JavaScriptを使わずにモーダルを開閉するテクニックを解説します。

軽量で依存性がなく、静的サイトやちょっとしたデモにも最適な方法です。

CSSだけでモーダルを作る方法

CSSでモーダルを作るには、大きく分けて2つのアプローチがあります。

  1. :target擬似クラスを使う方法(アンカーリンクで開閉)
  2. checkbox+labelで状態を管理する方法(フォーム利用)

ここでは:target方式を中心に解説します。
HTMLとCSSだけで動作するので、JSが使えない環境でも安心です。

1 基本コード(:targetを使ったモーダル)

See the Pen
Untitled
by 小瀧賢 (@ekwwawpb-the-styleful)
on CodePen.

checkbox方式との違い

  • :targetはURLハッシュを利用するため、ページ遷移の履歴に影響する
  • checkbox方式はフォーム要素を利用し、ハッシュを使わない
  • どちらもJS不要だが、UI要件に応じて使い分けると便利

UI改善のポイント

  • 背景クリックで閉じる演出はCSSだけでは難しい → 擬似要素で擬似クリック領域を作る工夫
  • フォーカス制御はCSSのみでは困難 → アクセシビリティ重視ならJS併用も検討
  • アニメーションをtransformopacityで滑らかに表現

2 基本コード(checkbox方式)

See the Pen
Untitled
by 小瀧賢 (@ekwwawpb-the-styleful)
on CodePen.

  • URLのハッシュを使わないため履歴に残らない
  • トグル制御が簡単で複数モーダルにも応用可能
  • 背景クリックで閉じる場合はCSSだけだと難しいが工夫可能

まとめ

CSSだけで作るモーダルの魅力!
軽量で依存がなく、静的ページやデモに最適。
アクセシビリティや高度な制御が不要なら、この方法だけで十分実用可能です。
プロジェクトに合わせて、JSとのハイブリッド化も検討すると良いでしょう。

 

satokotadesignキャンペーン実施中!

浜松市の飲食店限定|ホームページ無料作成サービス
ぶっちゃけ無料相談会!ホームページ制作の悩み話してみませんか?
satokotadesign4周年記念キャンペーン

静岡県浜松市でホームページ制作ならsatokotadesign
静岡県浜松市でホームページ制作ならsatokotadesign

スポンサーリンク
おすすめの記事