ホバー表示要素を display:none ではなく opacity:0 + 絶対配置で隠す
フロントエンド
UI
CSS
テーブルセルの編集ボタンなど、ホバー時だけ表示したい UI 要素を隠す際のトレードオフ:
display: noneや条件レンダリングで DOM から消すと、ツールチップのチラつきや hover 判定の不安定化が起きることがある。- 逆に
opacity: 0だけだと要素がレイアウトに参加し続け、非表示時もスペースを占有してしまう。 - 両立策: 要素は常に DOM に残し (
opacity: 0+pointer-events: none)、position: absoluteでレイアウトから外し、ホバー/アクティブ時だけ本文側に退避余白 (padding-right) を付与して重なりを防ぐ。
これにより「非表示時のスペース占有」と「ホバー時の本文との重なり」を両方解消できる。