【问题标题】:Bootstrap nav mr-auto not working as expectedBootstrap nav mr-auto 未按预期工作
【发布时间】:2020-06-20 08:19:44
【问题描述】:

我有下面的引导导航 sn-p:

<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
<nav class="navbar bg-secondary navbar-dark">
  <div class="container">
    <nav class="navbar navbar-expand-lg"><a class="navbar-brand text-white" href="/">Test Site 2</a><button class="navbar-toggler collapsed" type="button" data-toggle="collapse" data-target="#navbarMain" aria-controls="navbarMain" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button>
      <div class="collapse navbar-collapse d-flex" id="navbarMain">
        <ul class="navbar-nav mr-auto">
          <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#" role="button" id="navbarDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">View Categories</a>
            <div class="dropdown-menu" aria-labelledby="navbarDropdown">
              <div class="container container-sm">
                <div class="row">
                  <a class="dropdown-item" href="/categories/5cfe472022a68840484a3652" style="white-space: normal;">Category 1</a><a class="dropdown-item" href="/categories/5dc7ff6bac641e2548a9e279" style="white-space: normal;">Category 2</a><a class="dropdown-item" href="/categories/5dc7ffa1ac641e2548a9e27a" style="white-space: normal;">Category 3</a>
                </div>
              </div>
            </div>
          </li>
          <li class="nav-item"><a class="nav-link" href="/pages/about-us">About Us</a></li>
          <li class="nav-item"><a class="nav-link" href="/pages/contact-us">Contact Us</a></li>
          <li class="nav-item"><a class="nav-link" href="/pages/finding-us">Finding Us</a></li>
        </ul>
        <ul class="navbar-nav">
          <li class="nav-item mr-2">
            <form class="form-inline" method="get" action="/search">
              <div class="input-group input-group-sm mt-1"><input class="form-control" type="search" placeholder="Search..." name="term">
                <div class="input-group-append"><button class="btn btn-success" type="submit">Go</button></div>
              </div>
            </form>
          </li>
          <li class="nav-item"><a class="nav-link" href="/login">Login / Register</a></li>
        </ul>
      </div>
    </nav>
  </div>
</nav>

我尽可能在引导文档站点上复制了他们的示例。

我想将第二个&lt;ul&gt; 推到右侧,所以我使用mr-auto,就像他们在示例中所做的那样,但是它不像示例中那样对我有用,我不明白为什么。我什至尝试将 d-flex 类添加到 #navbarMain div 但仍然没有运气。

就我所见,即使运行检查器中的值,显示的所有内容都与示例中的相同。

谁能告诉我为什么这不起作用?

【问题讨论】:

  • 有点混乱,因为你引用了第二个
      但在代码中 mr-auto 是...实际上是第一个

    标签: html bootstrap-4 nav


    【解决方案1】:

    你想从你附加的图像中得到什么:

    我的代码生成的内容与您的图像相匹配:

    更新代码:Demo on JsFiddle

    <!doctype html>
    <html lang="en">
      <head>
        <title>Title</title>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
      </head>
      <body>
        <nav class="navbar navbar-expand-sm bg-dark navbar-dark justify-content-end">
          <a class="navbar-brand" href="#">Navbar</a>
          <a class="navbar-item text-white pr-2" href="#">Home</a>
          <a class="navbar-item text-white pr-2" href="#">Link</a>
          <div class="dropdown">
            <button class="btn text-white dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
              Dropdown
            </button>
            <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
              <a class="dropdown-item" href="#">Action</a>
              <a class="dropdown-item" href="#">Another action</a>
              <a class="dropdown-item" href="#">Something else here</a>
            </div>
          </div>
          <button class="btn btn-disabled text-white pr-2" disabled>Disabled</button>
          <nav class="navbar navbar-dark bg-dark ml-auto mr-1">
            <form class="form-inline">
              <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
              <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
            </form>
          </nav>
      </nav>
        <!-- Optional JavaScript -->
        <!-- jQuery first, then Popper.js, then Bootstrap JS -->
        <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
      </body>
    </html>
    

    【讨论】:

    • 在你的例子中没有使用 ml-auto,你能举一个左边一个 ul 右边一个 ul 的例子吗? imgur.com/t5wlFG1
    • @bendataclear 更新了代码并添加了一个图像和演示它所产生的内容以满足您的要求。
    • 我发现了这个问题,它只是一个额外的navbar nav 对象。
    【解决方案2】:

    找到问题所在,我使用容器来约束导航元素:

    <nav class="navbar bg-secondary navbar-dark">
      <div class="container">
        <nav class="navbar navbar-expand-lg">
    

    您可以嵌套 nav,但不应该嵌套 navbar 类,删除额外的 &lt;nav class="navbar"&gt; 使一切正常:

    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" rel="stylesheet" />
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
    <nav class="navbar navbar-expand-lg bg-secondary navbar-dark">
      <div class="container">
        <a class="navbar-brand text-white" href="/">Test Site 2</a><button class="navbar-toggler collapsed" type="button" data-toggle="collapse" data-target="#navbarMain" aria-controls="navbarMain" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button>
        <div class="collapse navbar-collapse d-flex" id="navbarMain">
          <ul class="navbar-nav mr-auto">
            <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#" role="button" id="navbarDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">View Categories</a>
              <div class="dropdown-menu" aria-labelledby="navbarDropdown">
                <div class="container container-sm">
                  <div class="row">
                    <a class="dropdown-item" href="/categories/5cfe472022a68840484a3652" style="white-space: normal;">Category 1</a><a class="dropdown-item" href="/categories/5dc7ff6bac641e2548a9e279" style="white-space: normal;">Category 2</a><a class="dropdown-item"
                      href="/categories/5dc7ffa1ac641e2548a9e27a" style="white-space: normal;">Category 3</a>
                  </div>
                </div>
              </div>
            </li>
            <li class="nav-item"><a class="nav-link" href="/pages/about-us">About Us</a></li>
            <li class="nav-item"><a class="nav-link" href="/pages/contact-us">Contact Us</a></li>
            <li class="nav-item"><a class="nav-link" href="/pages/finding-us">Finding Us</a></li>
          </ul>
          <ul class="navbar-nav">
            <li class="nav-item mr-2">
              <form class="form-inline" method="get" action="/search">
                <div class="input-group input-group-sm mt-1"><input class="form-control" type="search" placeholder="Search..." name="term">
                  <div class="input-group-append"><button class="btn btn-success" type="submit">Go</button></div>
                </div>
              </form>
            </li>
            <li class="nav-item"><a class="nav-link" href="/login">Login / Register</a></li>
          </ul>
        </div>
      </div>
    </nav>

    【讨论】:

    • 嗯,是的,这就是我在粘贴的代码中删除“容器”的原因。如果您自己的问题已经按照其他人的要求进行了回答,那么在 Stack Overflow 社区中发布对您自己问题的答案是一种不好的做法并且不鼓励这样做。你没有添加我的代码没有为你做的任何事情。
    • 是的,我确实添加了一些东西,我需要容器中约束的导航。您的回答没有让我发现问题,它基本上是另一个工作示例,我已经从引导文档中获得了一个工作示例。
    猜你喜欢
    • 2020-01-09
    • 2020-03-07
    • 1970-01-01
    • 2022-01-21
    • 2014-06-05
    • 2020-11-27
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多