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

Bootstrap 4按钮下拉子菜单dropup不生效问题求助

解决Bootstrap 4中Dropup子菜单无法向上展开的问题

我帮你分析下,你给最外层容器加了dropup类,但嵌套的Days、Hours子菜单还是没法向上展开,这是因为Bootstrap 4的dropup样式默认只作用于直接子层级的下拉菜单,嵌套的子菜单不会自动继承这个向上展开的行为,得单独处理才行。下面给你两种可行的解决方法:

方法一:给子菜单添加自定义CSS调整定位

如果你的子菜单是用dropdown-submenu这种自定义嵌套结构实现的(Bootstrap 4官方其实不支持嵌套下拉,这类结构一般是开发者自己扩展的),可以给子菜单的列表加个自定义类,再写CSS调整它的定位:

第一步:修改HTML结构

补全并调整你的代码,给每个子菜单的ul.dropdown-menu加上dropdown-menu-up类:

<div class="dropup">
  <button style="width:220px" class="btn btn-secondary dropdown-toggle ml-auto" type="button" id="dropdownMenu3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Period</button>
  <ul class="dropdown-menu" aria-labelledby="dropdownMenu3">
    <li class="dropdown-submenu">
      <a class="dropdown-item dropdown-toggle" href="#" data-toggle="dropdown">Days</a>
      <ul class="dropdown-menu dropdown-menu-up">
        <li><a class="dropdown-item" href="#">1 Day</a></li>
        <li><a class="dropdown-item" href="#">3 Days</a></li>
      </ul>
    </li>
    <li class="dropdown-submenu">
      <a class="dropdown-item dropdown-toggle" href="#" data-toggle="dropdown">Hours</a>
      <ul class="dropdown-menu dropdown-menu-up">
        <li><a class="dropdown-item" href="#">6 Hours</a></li>
        <li><a class="dropdown-item" href="#">12 Hours</a></li>
      </ul>
    </li>
  </ul>
</div>

第二步:添加自定义CSS

在你的样式文件里加上这段代码,把子菜单的定位改成向上展开:

.dropdown-submenu .dropdown-menu-up {
  top: auto;
  bottom: 100%;
  margin-top: 0;
  margin-bottom: 0.125rem;
  /* 如果子菜单原本是向右展开的,还可以调整left/right让它对齐父元素 */
  left: 0;
  right: auto;
}

方法二:给子菜单单独套Dropup容器

如果想完全利用Bootstrap原生的dropup类,你可以把每个子菜单的触发元素和菜单列表单独放在一个dropup容器里,这样就能继承原生的向上展开样式:

<div class="dropup">
  <button style="width:220px" class="btn btn-secondary dropdown-toggle ml-auto" type="button" id="dropdownMenu3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Period</button>
  <ul class="dropdown-menu" aria-labelledby="dropdownMenu3">
    <li>
      <div class="dropup">
        <a class="dropdown-item dropdown-toggle" href="#" id="daysDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Days</a>
        <ul class="dropdown-menu" aria-labelledby="daysDropdown">
          <li><a class="dropdown-item" href="#">1 Day</a></li>
          <li><a class="dropdown-item" href="#">3 Days</a></li>
        </ul>
      </div>
    </li>
    <li>
      <div class="dropup">
        <a class="dropdown-item dropdown-toggle" href="#" id="hoursDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Hours</a>
        <ul class="dropdown-menu" aria-labelledby="hoursDropdown">
          <li><a class="dropdown-item" href="#">6 Hours</a></li>
          <li><a class="dropdown-item" href="#">12 Hours</a></li>
        </ul>
      </div>
    </li>
  </ul>
</div>

最后提醒下,要确保你已经正确引入了Bootstrap 4的CSS、JS文件,以及它依赖的jQuery,不然下拉功能可能根本没法正常触发哦。

内容的提问来源于stack exchange,提问作者anj28

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:11:06