Элементы навигационной панели Bootstrap 4 на правой стороне

Я только что перешел на bootstrap 4 и переделал все свои html и scss для работы с ним, и я не могу найти, как разместить группу элементов навигации на правой стороне панели навигации. Вот код моей панели навигации:

<nav class="navbar navbar-full navbar-dark bg-primary">
        <button class="navbar-toggler hidden-md-up" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"></button>
        <%= link_to "Living Recipe", recipes_path(sort_attribut: "popularity", sort_order: :desc), class: "navbar-brand" %>
        <div class="collapse navbar-toggleable-sm" id="navbarResponsive"> 
            <ul class="nav navbar-nav float-md-left">
                <li class="nav-item">
                    <%= form_tag(recipes_path, :method => "get", id: "search-form", class: "form-inline") do %>
                            <%= text_field_tag :search, params[:search], placeholder: "Search Recipes", class: "form-control col-md-8" %>
                    <% end %>
                </li>
                <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="http://example.com" id="responsiveNavbarDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Browse</a>
                    <div class="dropdown-menu" aria-labelledby="responsiveNavbarDropdown">
                        <%= link_to "Popular", recipes_path(sort_attribute: "popularity", sort_order: :desc), class: "dropdown-item" %>
                        <%= link_to "Newest", recipes_path(sort_attribute: "created_at", sort_order: :desc), class: "dropdown-item" %>
                        <%= link_to "Most Updated", recipes_path(sort_attribute: "most_active", sort_order: :desc), class: "dropdown-item" %>
                        <%= link_to "Most Saved", recipes_path(sort_attribute: "save_count", sort_order: :desc), class: "dropdown-item" %>
                    </div>
                </li>
            </ul>
            <ul class="nav navbar-nav float-md-right">
                <% if user_signed_in? %>
                    <li class="dropdown">
                        <a class="nav-link dropdown-toggle" href="http://example.com" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                            <%= current_user.displayname.present? ? "D-ring" : current_user.firstname %>
                        </a>
                        <div class="dropdown-menu" aria-labelledby="responsiveNavbarDropdown">
                            <%= link_to "Profile", user_path(current_user.id), class: "dropdown-item" %>
                            <%= link_to "Recipe Box", user_saved_recipes_path(current_user.id), class: "dropdown-item" %>
                            <%= link_to "Add Recipe", new_recipe_path, class: "dropdown-item" %>
                            <%= link_to "Submitted Recipes", user_path(current_user.id), class: "dropdown-item" %>
                            <%= link_to "Sign Out", destroy_user_session_path, :method => :delete, class: "dropdown-item" %>
                        </div>
                    </li>
                <% else %>
                    <li class="nav-item">
                        <%= link_to "Create Account", '', data: {:'toggle' => 'modal', :'target' => '#signupModal'}, class: "nav-link" %>
                    </li>
                    <li class="nav-item">
                        <%= link_to "Login", '', data: {:'toggle' => 'modal', :'target' => '#loginModal'}, class: "nav-link" %>
                    </li>         
                <% end %>
            </ul>
        </div>
    </nav>

А вот скриншот того, как это выглядит

Комментарии к вопросу (2)
Решение

TL;DR:

Создайте еще один <ul class="navbar-nav ml-auto"> для элементов навигационной панели, которые вы хотите разместить справа.
ml-auto будет тянуть ваш navbar-nav вправо, в то время как mr-auto будет тянуть его влево.

Проверено на Bootstrap v4.1.3






    /* Stackoverflow preview fix, please ignore */
    .navbar-nav {
      flex-direction: row;
    }

    .nav-link {
      padding-right: .5rem !important;
      padding-left: .5rem !important;
    }

    /* Fixes dropdown menus placed on the right side */
    .ml-auto .dropdown-menu {
      left: auto !important;
      right: 0px;
    }




  <a class="navbar-brand" href="#">Navbar</a>
  <ul class="navbar-nav mr-auto">
    <li class="nav-item active">
      <a class="nav-link">Left Link 1</a>
    </li>
    <li class="nav-item">
      <a class="nav-link">Left Link 2</a>
    </li>
  </ul>
  <ul class="navbar-nav ml-auto">
    <li class="nav-item">
      <a class="nav-link">Right Link 1</a>
    </li>
    <li class="nav-item dropdown">
      <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">            Dropdown on Right</a>
      <div class="dropdown-menu" aria-labelledby="navbarDropdown">
        <a class="dropdown-item" href="#">Action</a>
        <a class="dropdown-item" href="#">Another action with a lot of text inside of an item</a>
      </div>
    </li>
  </ul>

<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>

Как вы можете видеть, дополнительные правила стилизации были добавлены для учета некоторых странностей в окне предварительного просмотра Stackoverflows.
Вы можете спокойно игнорировать эти правила в своем проекте.

Начиная с версии 4.0.0 это, похоже, официальный способ сделать это.

EDIT: Я изменил пост, чтобы включить выпадающий список, размещенный на правой стороне навигационной панели, как предложил @Bruno. Для этого нужно, чтобы атрибуты left и right были инвертированы. Я добавил дополнительный фрагмент css в начало кода примера.
Обратите внимание, что пример показывает мобильную версию, когда вы нажимаете кнопку Run code snippet. Для просмотра десктопной версии необходимо нажать кнопку Расширить сниппет.

.ml-auto .dropdown-menu {
    left: auto !important;
    right: 0px;
}

Включение этого в таблицу стилей должно помочь.

Комментарии (10)

В версии 4 это стало проще. Просто поместите класс ml-auto в ul следующим образом:

<ul class="nav navbar-nav ml-auto">
Комментарии (6)

Это должно работать для альфа 6. Ключевым моментом является класс "mr-auto" в левой навигации, который будет сдвигать правую навигацию вправо. Также нужно добавить navbar-toggleable-md, иначе он будет складываться в столбец, а не в строку. Обратите внимание, что я не добавил остальные элементы переключения (например, кнопку переключения), я добавил только достаточно, чтобы отформатировать его в соответствии с запросами. Вот более полные примеры https://v4-alpha.getbootstrap.com/examples/navbars/.








        <div class="container">
            <a class="navbar-brand" href="#">Navbar</a>
            <ul class="nav navbar-nav mr-auto">
                <li class="nav-item active">
                    <a class="nav-link" href="#">Home</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Link</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Link</a>
                </li>
            </ul>
            <ul class="nav navbar-nav">
                <li class="nav-item">
                    <a class="nav-link" href="#">Link on the Right</a>
                </li>
            </ul>
        </div>

Комментарии (1)

У меня работает сайт CodePen с левой и с выравниванием по правому краю навигация ссылки, что все рухнет в меню отзывчивое вместе с помощью.оправдать-содержание-между на родительский тег: https://codepen.io/epan/pen/bREVVW?editors=1000



    <span class="navbar-toggler-icon"></span>

  <a class="navbar-brand" href="#">Acme</a>
  <div class="collapse navbar-collapse justify-content-between" id="navbar">
    <div class="navbar-nav">
      <a class="nav-item nav-link" href="#">Ball Bearings</a>
      <a class="nav-item nav-link" href="#">TNT Boxes</a>
    </div>
    <div class="navbar-nav">
      <a class="nav-item nav-link" href="#">Logout</a>
    </div>
  </div>
Комментарии (0)

В Bootstrap 4 Альфа-6 версия, как navbar является использование Flex модели, вы можете использовать оправдать-содержание-энд в Родительском&#39;с div и удалитьмистер-авто`.

<div class="collapse navbar-collapse justify-content-end" id="navbarText">
  <ul class="navbar-nav">
    <li class="nav-item active">
      <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
    </li>
    <li class="nav-item">
      <a class="nav-link" href="#">Link</a>
    </li>
    <li class="nav-item">
      <a class="nav-link disabled" href="#">Disabled</a>
    </li>
  </ul>
</div>

Это работает как шарм :)

Комментарии (0)

С Bootstrap В4.0.0-Альфа.6: Два &л;ул&GT;с (.шапку-НС), с .мистер-авто "и один с".мл-авто:


  ...     
  <div class="collapse navbar-collapse">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Left Link </a>
      </li>
    </ul>
    <ul class="navbar-nav ml-auto">
      <li class="nav-item">
        <a class="nav-link" href="#">Right Link </a>
      </li>
    </ul>
  </div>
Комментарии (0)

В моем случае, я ищу решение, которое позволяет один из элементов панели навигации, чтобы быть правильно выровнены. Для того чтобы сделать это, вы должны добавить стиль="по-ширина:100%; и" на <ул класс="по панели навигации-навигация" и> и потом добавить мл-авто класса на панели навигации элемента.

Комментарии (0)

Вот и простой пример.




    <div class="container">

            <span class="navbar-toggler-icon"></span>

        <div class="collapse navbar-collapse" id="mainMenu">
            <div class="navbar-nav ml-auto " style="width:100%">
                <a class="nav-item nav-link active" href="#">Home</a>
                <a class="nav-item nav-link" href="#">About</a>
                <a class="nav-item nav-link" href="#">Training</a>
                <a class="nav-item nav-link" href="#">Contact</a>
            </div>
        </div>
    </div>
Комментарии (1)