Anchor Positioningが全対応。HTML・CSSだけのポップオーバーが完全体に
ARANK
HTMLのPopover APIを使えば、ESCキーで閉じる処理やフォーカス管理がJavaScriptなしで実装できます。しかし、ポップオーバーの位置指定には結局JavaScriptが必要でした。2026年1月13日に、Firefox 147がリリースされ、「CSS Anchor Positioning」が全ブラウザ対応しました。CSS Anchor Positioningとは、要素の位置を別の要素の位置に合わせられるCSSの機能です。Chrome・Safari・Edgeでは先に対応していましたが、長らくFirefoxだけ対応していなかったのです。本記事では、Popover APIとCSS Anchor Positioningを組み合わせて、ポップオーバーをJavaScriptなしで実装する方法を解説します。実例として、タスク管理のサブメニューを右側に表示する表現や、ヘッダーのユーザーアイコン下にドロップダウンメニューを表示するデモを紹介します。タスク管理のサブメニューユーザーアイコンの下にドロップダウンメニューが表示されるPopover APIとは従来、ポップオーバーを実装するには、大量のイベントリスナー、複雑な位置計算のロジック、スクロールやリサイズへの対応が必要でした。たとえば次のようなJavaScriptのコードが必要です。// 従来のJavaScript実装 const button = …
3 comments
アイコン下にメニューを出す表現もよくやる🍔
ESCキーやメニュー外クリックで閉じたり、レイヤー最上位への配置はPopoverでできるが、アイコンを基準にした配置はCSSだけじゃ面倒だった🥵CSS Anchor Positioningで実現できるようになり、Popoverが遂に完全体になった💪zenn.dev/ubie_dev/artic…g pic.x.com/MLQ3wKAWyZ
Popoverでメニューの位置にサブメニューが出る表現、CSSだけでずっとやりたかった😻
Popoverは全ブラウザ対応してたけど、位置を指定する手段がCSSにはなく、JSを頑張って書くしかなかった😡Anchor Positioningが全ブラウザ対応し、JSを駆逐できた💐
記事を書きました
zenn.dev/ubie_dev/artic…
#CSS pic.x.com/PoFdhmXbAs
これをずっとやりたかった😻
1/13に登場したFirefox 147で、CSS Anchor Positioningが全ブラウザ対応💐 好きな要素を基準に、HTMLポップオーバーを配置できます。サブメニューやドロップダウンの頻出表現が、HTML・CSSだけで実現できます。
デモと共に全力解説しました✨
zenn.dev/ubie_dev/artic… pic.x.com/SHFy6Q9X6Jhttps://x.com/tonkotsuboy_com/status/2012070269767078100/photo/1)https://x.com/tonkotsuboy_com/status/2012070269767078100/photo/1)https://x.com/tonkotsuboy_com/status/2012070269767078100/photo/1)