Bootstrap 5 导航栏下拉菜单离开屏幕

Bootstrap 5 navbar dropdown-menu leaves screen

我有一个右对齐的菜单。最后一个菜单是下拉菜单。但是下拉菜单项不会留在屏幕上。一半离开屏幕。我一直在谷歌搜索,但我找不到 class 让它一直显示在屏幕上。

<nav class="navbar navbar-expand-md navbar-light bg-light">
  <div class="container-fluid">
    <div class="ms-auto order-0">
      <a class="navbar-brand mx-auto" href="#"><img src="./img/BMB-logo.svg" width="75" height="75"></a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".dual-collapse2">
        <span class="navbar-toggler-icon"></span>
      </button>
    </div>
    <div class="navbar-collapse collapse w-100 order-3 dual-collapse2">
        <ul class="navbar-nav ms-auto">
            <li class="nav-item">
              <a class="nav-link" href="#">Right</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Link</a>
            </li>
            <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                    <i class="fas fa-user"></i>
                </a>
                <ul class="dropdown-menu" aria-labelledby="navbarDropdown">
                    <li><a class="dropdown-item" href="#">Login</a></li>
                    <li><a class="dropdown-item" href="#">Another action</a></li>
                    <li><a class="dropdown-item" href="#">Something else here</a></li>
                </ul>
            </li>
        </ul>
    </div>
  </div>
</nav>

如您在 中所见,dropdown-menu 需要右对齐。在 Bootstrap 5 中,dropdown-menu-right 已更改为 dropdown-menu-end...

<nav class="navbar navbar-expand-md navbar-light bg-light">
  <div class="container-fluid">
    <div class="ms-auto order-0">
      <a class="navbar-brand mx-auto" href="#"><img src="//placehold.it/75" width="75" height="75"></a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".dual-collapse2">
        <span class="navbar-toggler-icon"></span>
      </button>
    </div>
    <div class="navbar-collapse collapse w-100 order-3 dual-collapse2">
        <ul class="navbar-nav ms-auto">
            <li class="nav-item">
              <a class="nav-link" href="#">Right</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Link</a>
            </li>
            <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                    <i class="fas fa-user"></i>
                </a>
                <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdown">
                    <li><a class="dropdown-item" href="#">Login</a></li>
                    <li><a class="dropdown-item" href="#">Another action</a></li>
                    <li><a class="dropdown-item" href="#">Something else here</a></li>
                </ul>
            </li>
        </ul>
    </div>
  </div>
</nav>

Demo

由于以下 CSS 风格,已接受的答案对我不起作用:

.dropdown-menu[style] {
    right: auto !important;
}

覆盖 .dropdown-menu-endright:0; 属性。删除 !important 或将其添加到 .dropdown-menu-end 会强制下拉菜单按预期右对齐。