• HOME > 
  • HTML > 
  • HTMLのpopover属性の使い方【JSなしでポップアップ...

HTMLのpopover属性の使い方【JSなしでポップアップを簡単に実装する方法】

投稿日:

このページにはGoogleアドセンス広告とアフィリエイト広告が含まれています。

カテゴリー記事のアイキャッチ画像

本記事は執筆時点(2026年02月18日)の情報をベースにしております。掲載している情報が最新ではない可能性がありますので何卒ご容赦ください。

HTMLに比較的新しく追加されたpopover属性は、JavaScriptに大きく頼らずにポップアップUIを実装できる便利な仕組みです。本ページでは、popoverの基本的な使い方や活用方法を整理しながら、自身の理解を深めるための備忘録として情報をまとめています。

HTMLのpopover属性とは何か

HTMLのpopover属性は、JavaScriptに大きく依存しなくても補助的な情報やメニュー、ヒントなどをポップアップ表示できる仕組みです。

popoverの動作イメージ

従来はモーダルウィンドウやツールチップを表示するために複雑なスクリプトや外部ライブラリが必要でしたが、popover属性を使うことで、よりシンプルかつ標準的な方法で実装できるようになりました。

ユーザーの操作に応じて軽量な情報を表示する仕組みとして注目されているpopoverの主な特徴は以下の通りです。

  • 標準HTMLだけで実装できる
  • ユーザー操作に応じて表示される
  • アクセシビリティに配慮されている

標準HTMLだけで実装できる

popover属性はブラウザ標準の機能として提供されるため、特別なライブラリを読み込まなくても利用できます。

ボタンなどのトリガー要素と、表示したいコンテンツを関連付けるだけで動作するため、コード量を大幅に削減できます。

保守性も高まり、将来的な仕様変更にも対応しやすい点がメリットです。

ユーザー操作に応じて表示される

クリックやフォーカスなどのユーザー操作をきっかけに表示できるため、必要な情報だけを適切なタイミングで提示できます。

画面を常に情報で埋め尽くすことがなくなり、ユーザー体験の向上につながります。

特にフォームの補足説明やメニュー表示との相性が良い機能です。

アクセシビリティに配慮されている

標準仕様として設計されているため、キーボード操作やスクリーンリーダーへの対応が考慮されています。

独自実装のポップアップよりも支援技術との相性が良く、誰にとっても使いやすいWebページを作りやすくなります。

popover属性の基本的な使い方

popover属性の使い方は非常にシンプルで、表示したい要素にpopoverを指定し、それを呼び出すボタンなどを用意するだけで動作します。

複雑なスクリプトを記述せずに実装できるため、初心者でも扱いやすいのが特徴です。

popoverを付与する要素を用意する

まず、ポップアップとして表示したい要素にpopover属性を付けます。

この属性があることで、ブラウザはその要素を通常は非表示にし、呼び出されたときに前面表示する対象として扱います。

HTML

<div id="myPopover" popover>これはpopoverで表示される内容です。</div>

ボタンなどのトリガーを設定する

次に、popoverを表示するためのボタンやリンクを設置し、popovertarget属性を付けます。

指定した要素を呼び出す設定を行うことで、クリック時にポップアップが表示されます。ユーザーにとって直感的な操作で情報を確認できる導線を作ることが重要です。

HTML

<button popovertarget="myPopover">詳細を見る</button>
<div id="myPopover" popover>これはpopoverで表示される内容です。</div>
popoverの動作イメージ

popoverは画面の別の場所をクリックすると自動的に閉じる仕様になっています。わざわざ閉じる機能を実装する必要がないので開発の手間が軽減されます。

しかし用途によっては「閉じるボタン」を配置した方が良いケースもあるでしょう。

そのような場面では「popovertargetaction="hide"」を使えば簡単に閉じるボタンを追加できます。

HTML

<button popovertarget="myPopover">詳細を見る</button>
<div id="myPopover" popover>
    これはpopoverで表示される内容です。
    <button popovertarget="myPopover" popovertargetaction="hide">閉じる</button>        
</div>
popoverの閉じるボタンの動作イメージ

ここまでの機能をHTMLのみで実装できるので便利ですね。

続いてはpopoverのカスタマイズ方法について確認していきましょう。

popoverの表示位置を変更する【position-anchor】

popover属性はデフォルトでは画面中央に表示される仕様になっていますが、CSSを使えば配置をカスタマイズすることが可能です。

ツールチップ機能のようにクリックした要素の近くに表示させたい時は、「CSS Anchor Positioning API」を利用すると簡単です。

CSS Anchor Positioning API

CSS Anchor Positioning APIは、JavaScriptなしで特定の要素にくっつく要素を作れる機能です。

基準(アンカー)となる要素に対してpopover要素を簡単に配置することが可能です。

以下のような流れで設定します。

基準(アンカー)を定義

まず、ボタンなど配置の基準としたい要素に「anchor-name」プロパティで名前(先頭にハイフンを2つ付ける)を定義します。

HTML

<button popovertarget="tooltip" style="anchor-name: --tip;">ヘルプ</button>

紐付け

ポップオーバーさせる要素側で「position-anchor」プロパティを使って基準要素のanchor-nameを指定し、2つを紐づけします。

HTML

<div id="tooltip" popover>このボタンの補足説明です。</div>

CSS

[popover]#tooltip{
    position-anchor:--tip;/* 紐付けたいボタンを指定 */
}

配置指定

ポップオーバーさせる要素側で「position-area」プロパティを使って位置を決めます。

CSS

[popover]#tooltip{
    position-anchor:--tip;/* 紐付けたいボタンを指定 */
    inset:unset;/* デフォルトスタイルをリセット*/
    position-area:right;/* 配置を指定 */
}
Anchor Positioningの動作イメージ

popover属性の値「auto」と「manual」の違い

popover属性には値が用意されており、「どうやって閉じるか」と「複数を同時に出せるか」という挙動を制御できます。

  • 「auto」はデフォルトの値。1つ開くと他のautoは勝手に閉じます。
  • 「manual」は明示的に閉じないと消えない為、複数同時表示ができます。

初期値「auto」の状態(何も指定しない)

下記のようにpopover属性を使ったツールチップを複数設置したときの挙動を確認してみましょう。

HTML

<button popovertarget="tooltip1" style="anchor-name: --tip1;">ヘルプ1</button>
<div id="tooltip1" class="tooltip" popover style="position-anchor: --tip1;">ヘルプ1の補足説明です。</div>
<button popovertarget="tooltip2" style="anchor-name: --tip2;">ヘルプ2</button>
<div id="tooltip2" class="tooltip" popover style="position-anchor: --tip2;">ヘルプ2の補足説明です。</div>
<button popovertarget="tooltip3" style="anchor-name: --tip3;">ヘルプ3</button>
<div id="tooltip3" class="tooltip" popover style="position-anchor: --tip3;">ヘルプ3の補足説明です。</div>
popover=autoの動作イメージ

他のツールチップを開くとそれまで表示していたツールチップは自動的に非表示になり、複数を同時に表示しない仕様が確認できます。

値「manual」を指定した場合

続いて先ほどのツールチップ中で「ヘルプ2」にだけ、値「manual」を指定してみます。

HTML

<button popovertarget="tooltip1" style="anchor-name: --tip1;">ヘルプ1</button>
<div id="tooltip1" class="tooltip" popover="" style="position-anchor: --tip1;">ヘルプ1の補足説明です。</div>
<button popovertarget="tooltip2" style="anchor-name: --tip2;">ヘルプ2</button>
<div id="tooltip2" class="tooltip" popover="manual" style="position-anchor: --tip2;">ヘルプ2の補足説明です。</div>
<button popovertarget="tooltip3" style="anchor-name: --tip3;">ヘルプ3</button>
<div id="tooltip3" class="tooltip" popover="" style="position-anchor: --tip3;">ヘルプ3の補足説明です。</div>
popover=manualの動作イメージ

値「manual」が指定してある真ん中の「ヘルプ2」のツールチップのみ他のツールチップを開いても表示を継続していることが確認できます。

なお、値「manual」を指定すると別の箇所をクリックしても閉じることができないため、 「popovertargetaction="hide"」を使って閉じるボタンを設置しておく必要があります。

popoverとdialog要素の違い

dialog要素とは?

dialog要素はHTML標準のダイアログ表示用要素で、JavaScriptから .showModal() を使うことでモーダル表示が可能になります。フォーム入力や確認画面など、JavaScriptを用いて本格的なUIを作るための仕組みです。

モーダルとは、表示中に他の操作をできなくする画面表示方式のことです。確認ダイアログ、入力フォーム、重要な通知など、ユーザーに必ず対応してほしい場面で使用されます。下図のように背景が暗くなり、閉じるまで操作を制限するUIが一般的です。

dialog要素とモーダルの動作イメージ

対して、popoverはボタンなどの操作に連動して表示される「軽量なポップアップ表示機能」です。ツールチップ、補足説明、小さなメニューなどに適しており、画面全体を覆わないのが特徴です。ユーザーは背後の画面をそのまま操作できるため、あくまで補助的な情報表示として使われます。

popoverの動作イメージ

軽い補足ならpopover、操作を伴うならdialogと覚えると良いかもしれません。

dialog要素について詳しくはこちらのページにまとめていますのでよろしければご覧ください。

popover属性が活躍する具体的な場面

popover属性は単なるポップアップ表示だけでなく、さまざまなUI改善に役立ちます。

特に情報量の多い業務システムや管理画面において、画面をすっきり保ちながら必要な情報を提示できる点が魅力です。

活用が期待できる代表的なシーンは以下の通りです。

  • フォーム入力時の補足説明
  • ナビゲーションメニューの簡易表示
  • 用語解説やツールチップ

フォーム入力時の補足説明

入力欄の横にヘルプボタンを設置し、クリック時に入力例や注意事項を表示する使い方が効果的です。

常に説明文を表示するよりも画面が見やすくなり、ユーザーが迷ったときだけ情報を確認できる設計が可能になります。

ナビゲーションメニューの簡易表示

サブメニューや詳細リンクをpopoverで表示することで、ページ遷移なしに選択肢を提示できます。

特に管理画面や業務ツールでは、操作回数の削減につながり、作業効率を高める効果が期待できます。

用語解説やツールチップ

専門用語に対して補足説明を表示する用途にも適しています。

テキストをクリックすると簡単な説明が表示される仕組みを作ることで、初心者にも分かりやすいコンテンツになります。

教育系サイトやマニュアルページでも有効です。

popover属性を使う際の注意点

便利なpopover属性ですが、利用する際にはいくつか注意すべきポイントもあります。

対応ブラウザの状況や表示位置の調整など、事前に理解しておくことでトラブルを防げます。

導入前に確認したい主な注意点は以下の通りです。

  • ブラウザ対応状況を確認する
  • 表示位置のデザイン調整
  • 重要な情報を入れすぎない

ブラウザ対応状況を確認する

比較的新しい機能のため、古いブラウザでは正しく動作しない可能性があります。

業務システムなど幅広い環境で利用されるサイトでは、事前に対応状況を確認し、必要に応じて代替手段を用意することが大切です。

表示位置のデザイン調整

popoverは自動で表示位置が調整されますが、デザインによっては意図しない場所に表示されることもあります。

実際の画面で動作確認を行い、視認性や操作性に問題がないかチェックすることが重要です。

重要な情報を入れすぎない

popoverは補足情報向けの仕組みです。主要な操作や重要な警告をすべてpopover内に入れてしまうと、ユーザーが見逃す可能性があります。

あくまで補助的な情報表示として使う意識が大切です。

まとめ

HTMLのpopover属性は、これまでJavaScriptに頼っていたポップアップ表示を、よりシンプルかつ標準的に実装できる画期的な機能です。

フォーム補助、メニュー表示、用語解説など幅広い用途に活用でき、ユーザー体験の向上にもつながります。

一方でブラウザ対応や使いどころには注意が必要ですが、適切に使えば保守性と操作性を両立できる優れた仕組みです。

今後のWeb制作において、popover属性は積極的に取り入れたい技術の一つと言えるでしょう。

関連する記事

サムネイル

HTMLのdialogタグの使い方【モーダルダイアログを素早……

2025年04月11日
HTMLのdialogタグを使ってモーダルダイアログを実装する方法を学んだので備忘録として残します。 少し面倒に感じていたモーダルダイアログの導入の手間を楽にし […]
サムネイル

HTMLのdetailsとsummaryでアコーディオン機能……

2025年02月06日
details要素を使えばHTMLだけでアコーディオン機能を実装できることを知ったので、summary要素も含めた使い方を備忘録としてまとめます。 detail […]
サムネイル

HTMLのpicture要素とsourceタグの使い方【レス……

2024年11月07日
picture要素を使った画像の表示について備忘録としてまとめます。 picture要素とは? HTMLのpicture要素は、様々な画面サイズやブラウザに合わ […]
サムネイル

video要素とsource要素で画面サイズに応じて読み込む……

2024年09月19日
最終更新日:2024年11月07日
HTMLのsource要素とは? HTMLのsource要素は、video要素やpicture要素の子要素として複数のメディアソースを指定したいときに使う要素で […]
サムネイル

HTMLのテキストボックスにクリアボタンを実装【inputの……

2024年09月04日
inputのtype属性を「search」にすれば自動的にクリアボタンが表示されます。簡単ですがデザインはブラウザに依存しておりカスタマイズはできません。JSを使って処理を自作する方法は、HTML・CSS・JSに関するある程度の知識が必要ですが、自由にカスタマイズできます。
サムネイル

HTMLのinputのdateで日付の入力欄を作る【初期値や……

2023年10月01日
最終更新日:2023年09月28日
HTMLのinputタグのtype属性にdateを指定すると、フォームなどに日付の入力欄を設置することができます。