【しーえすえすあんかーぽじしょにんぐ】
CSS Anchor Positioning とは?
公開:
💡 「JSなしでツールチップを吸着」——CSSだけで要素に紐付けてフローティングUIを実現する新仕様
📌 このページのポイント
- anchor-name/position-anchorプロパティで要素を紐付ける
- position-try-fallbacksでビューポートはみ出しを自動回避
- JavaScript不要でPopper.jsの機能をCSS実装
- Chrome 125以降でフラグなし対応、他ブラウザも追随中
今まではJavaScriptが必要だったの?
そうだよ。Popper.jsやFloating UIというライブラリで要素の座標を計算してたんだけど、これはJavaScriptで「要素の位置を読んで→計算して→スタイルを書き換える」という手順が必要だったんだよ。
ツールチップが画面の端に近いときはみ出しちゃいそうだけど、それはどうなるの?
Chrome以外のブラウザでも使えるの?
Chrome 125以降はフラグなしで使えるよ。SafariやFirefoxも追随して対応を進めていて、今は本番では段階的に使い始めるのがいい時期だね。Popper.jsを使っていたプロジェクトが少しずつ移行を始めているよ。
📖 おまけ:英語の意味
「CSS Anchor Positioning」 = CSSアンカー位置決め
💬 W3CのCSS Working Groupが策定。FloatingUIやPopper.jsが担っていた複雑な位置計算をCSSネイティブで実現しようという仕様だよ。