バフェット・コードのブログ

企業分析やプロダクト開発にまつわる記事を配信中

Popover API を使おう

こんにちは、バフェットコード開発部のkosappiです。

スーパーにさんまが並び始めました。ちょっと焼き過ぎかな?というくらい焼いて、かぼすを絞るのが好きです。

HTMLだけでモーダルを作る

popoverを使えば、HTMLだけでモーダルが実装できます。 モーダルは古典的なUIですが、今までHTMLの標準機能としては提供されていませんでした。 MDN

今回紹介する方法では本当にHTMLのみ(CSSも不要)で実現できます。

実装する

早速ですが CodePen に実装したものを置きました。

See the Pen Untitled by kosappi (@kosappi) on CodePen.

この2行だけでOK。

<button popovertarget="my-new-popover">ボタンの文言</button>
<div popover id="my-new-popover">コンテンツ</div>

なにがすごいのか

今までの HTML でモーダルを実現しようとすると、下記の手段をとることになります。これはいずれも JavaScript を書く必要があります。

  • alertでモーダルの代わりを作る
  • JavaScriptでDOMを操作する
  • CSSでセレクタを工夫してがんばる
  • jQueryを使う
  • ReactやVueなどを使う

popover API を利用すれば、こういった JavaScript を書かずに、HTML の要素間の関係だけでモーダルを実現できます。 コードの量を減らしたい場面では便利ではないでしょうか?

当然ですが、細かい UI の調整やイベントのカスタマイズには向かないので、そういった場合は JavaScript を書くことになります。

最後に

バフェットコードでは、HTMLの最新機能を使ってcoolなサービスを開発してくれるエンジニアを募集しています!

career.buffett-code.com