You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Bootstrap下拉菜单hover展示异常 如何调整为列表样式

问题原因

导致下拉菜单展示异常的核心是自定义CSS的错误配置:

  • .dropMenu的内边距设置为padding: 112px 160px,超大的上下左右空白直接把菜单选项挤压到了异常位置
  • .dropMenu设置display: inline-block,无法让内部的选项元素纵向堆叠为列表
  • 自定义的显示逻辑和React-Bootstrap下拉组件自带的内置样式存在冲突
修复方案

方案1:修改自定义CSS

调整错误的样式属性即可恢复正常展示:

.drop {
  position: relative;
  display: inline-block;
}

.dropMenu {
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  /* 替换超大内边距为合理值 */
  padding: 8px 0;
  z-index: 1;
  height: auto;
  display: none;
}

.drop:hover .dropMenu {
  /* 改用block保证子元素纵向排列 */
  display: block;
}

方案2:使用React-Bootstrap原生能力

如果不需要自定义样式,直接移除所有自定义CSS,给Dropdown组件添加hover属性即可原生支持悬浮触发,自带样式会保证下拉列表正常排列:

<Dropdown className="drop" hover>
  <Dropdown.Toggle variant="success" id="dropdown-basic">
    Dropdown Button
  </Dropdown.Toggle>
  <Dropdown.Menu className="dropMenu">
    <Dropdown.Item href="#/action-1">Action</Dropdown.Item>
    <Dropdown.Item href="#/action-2">Another action</Dropdown.Item>
    <Dropdown.Item href="#/action-3">Something else</Dropdown.Item>
    <Dropdown.Item href="#/action-1">Action</Dropdown.Item>
    <Dropdown.Item href="#/action-2">Another action</Dropdown.Item>
    <Dropdown.Item href="#/action-3">Something else</Dropdown.Item>
  </Dropdown.Menu>
</Dropdown>

内容的提问来源于stack exchange,提问作者Code With Banchi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:06:05