【问题标题】:Bootstrap 5 navbar dropdown-menu leaves screenBootstrap 5 导航栏下拉菜单离开屏幕
【发布时间】:2021-06-20 14:56:31
【问题描述】:

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

<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>

【问题讨论】:

  • 如果将 Bootstrap 类 dropdown-menu-end 添加到 ul,,下拉菜单将与下拉按钮的右侧对齐。信息在 Bootstrap 5 dropdown page.

标签: bootstrap-5


【解决方案1】:

正如您在older question 中看到的,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

【讨论】:

    【解决方案2】:

    由于以下 CSS 样式,接受的答案对我不起作用:

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

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

    【讨论】:

      猜你喜欢
      • 2016-02-11
      • 2019-04-17
      • 2016-10-15
      • 2014-07-24
      • 2017-07-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-15
      • 2022-10-22
      相关资源
      最近更新 更多