弹出菜单

在鼠标悬停/聚焦时显示一个交互式的弹出菜单。

  • 使用 left: 100% 将弹出菜单移动到父元素的右侧。
  • 使用 visibility: hidden 初始隐藏弹出菜单,以便应用过渡效果(与 display: none 不同)。
  • 使用 :hover:focus:focus-within 伪类选择器将 visibility: visible 应用于弹出菜单,当父元素被悬停/聚焦时显示它。
<div class="reference" tabindex="0">
  <div class="popout-menu">弹出菜单</div>
</div>
.reference {
  position: relative;
  background: tomato;
  width: 100px;
  height: 80px;
}

.popout-menu {
  position: absolute;
  visibility: hidden;
  left: 100%;
  background: #9C27B0;
  color: white;
  padding: 16px;
}

.reference:hover > .popout-menu,
.reference:focus > .popout-menu,
.reference:focus-within > .popout-menu {
  visibility: visible;
}