Bootstrap nav mr-auto не работает должным образом - PullRequest
0 голосов
/ 20 июня 2020

У меня есть bootstrap сниппет навигации:

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

Я скопировал их пример на сайт документации bootstrap, где это возможно.

Я хочу, чтобы второй <ul> был сдвинут вправо, поэтому Я использую mr-auto, как они это делают в своем примере, но он не работает для меня, как в примере, я не понимаю, почему. Я даже попытался добавить класс d-flex к #navbarMain div, но все равно не повезло.

Даже просмотр значений в инспекторе показывает все, как в примере, насколько я могу видеть.

Кто-нибудь может сказать мне, почему это не работает?

Ответы [ 2 ]

0 голосов
/ 20 июня 2020

Обнаружил проблему, именно там я использовал контейнер для ограничения элементов навигации:

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

Вы можете иметь вложенные nav, но не должны иметь вложенных navbar классов, удаление дополнительного <nav class="navbar"> заставило все работать:

<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>
0 голосов
/ 20 июня 2020

Что вы хотите от прикрепленного изображения: enter image description here

What my code produces to match your image: enter image description here

Updated Code: Демо на 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>
...