注目★★★★★Lobsters
div のセンタリング、ブラウザのサイドバーで台無しに――JavaScriptで真の中央配置を実現
30秒で把握
- 1div センタリングはブラウザ UI 幅の影響でウィンドウ全体ではなく webview 内だけ中央配置される問題が発生
- 2window.innerWidth/outerWidth とポインタイベント座標から webview のウィンドウ内位置を逆算して補正
- 3ユーザーが opt-in で有効化できるブラウザ拡張「center, actually」として実装・配置精度向上を実現
要約
CSS グリッドで div をセンタリングする方法は進化したが、ブラウザのサイドバーが表示されると、セン タリングが webview 内で行われるため、ウィンドウ全体の中央ではなくなる。著者は JavaScript で window.innerWidth と window.outerWidth の差を計算し、シフト値を動的に調整する方式を考案した。しかしDevTools が両側に UI を追加すると座標計算が複雑化したため、ポインタイベントの screenX と clientX から webview のウィンドウ内位置を逆算する手法に切り替えた。最終的には「center, actually」というブラウザ拡張にまとめ、ユーザーが opt-in で真の中央配置を選べる仕組みとした。
あなたへの影響
タイル型ウィンドウ環境でサイドバー/DevTools の UI 幅を正確に検知して動的に補正する手法は、マルチモニタ・ウィンドウ管理ツール活用時のレスポンシブデザイン品質向上に応用できる。
推奨:自社サイトで同様の問題に遭遇した場合、記事の JavaScript スニペット (screenX/clientX の差分計算) を参考にした動的シフト実装や、拡張機能の仕組みを検討する価値がある。