如何在 Bootstrap 4 中将导航栏项目定位到右侧?

How do you position navbar items to the right in Bootstrap 4?

我是新手,想请教一下 Bootstrap 4 中如何将导航栏项目定位到右侧?我在这里 Bootstrap 4 - Right Align Navbar Items 尝试了解决方案,但没有用。

我试图理解 Bootstrap 4 中的示例代码,但为什么搜索表单不会右对齐?

<nav class="navbar navbar-expand-lg navbar-light bg-light">
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo01" aria-controls="navbarTogglerDemo01" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="navbarTogglerDemo01">
        <a class="navbar-brand" href="#">Hidden brand</a>
        <ul class="navbar-nav mr-auto mt-2 mt-lg-0">
            <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>

        <form class="form-inline my-2 my-lg-0">
            <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>
    </div>
</nav>

mr-auto 不会使用下面的方法将导航项右对齐,

<nav class="navbar navbar-expand-lg navbar-light bg-light"> 
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggler40" aria-controls="navbarTogglerDemo01" aria-expanded="false" aria-label="Toggle navigation"> 
            <span class="navbar-toggler-icon"></span> 
        </button>             

        <div class="collapse navbar-collapse" id="navbarToggler40"> 
            <a class="navbar-brand" href="#">Hidden brand</a> 
            <ul class="navbar-nav mt-2 mt-lg-0 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="#">Link</a> 
                </li>                     

                <li class="nav-item"> 
                    <a class="nav-link disabled" href="#">Disabled</a> 
                </li>                     

                <li class="nav-item dropdown"> 
                    <a class="nav-link dropdown-toggle" href="http://example.com" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">                                    Dropdown link                                </a> 
                    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink"> 
                        <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>                         
                </li>                     
            </ul>                                  
        </div>             
    </nav>

是在导航栏菜单(<ul>标签)上设置的.mr-auto class将表单向右推。

#navbarTogglerDemo01 标签有 3 个直接子标签:<a><ul><form> 标签。通常它们都是左对齐的,但是上面提到的 class 将 <ul> 标签的右边距设置为自动。 这是实际的 css stlye:

.mr-auto {
    margin-right: auto !important;
}

您可以在 Bootstrap 4 文档的 Spacing utilities 部分阅读更多相关信息。

更新回复评论:
考虑下面的例子。除了配色方案之外,两个导航栏之间的唯一区别是 .mr-auto class 的用法。上面的使用它,并将表单推到右端,而下面的导航栏不使用它,因此表单位于菜单项旁边。

<nav class="navbar navbar-expand-lg navbar-light bg-light">
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo01" aria-controls="navbarTogglerDemo01" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="navbarTogglerDemo01">
        <a class="navbar-brand" href="#">Hidden brand</a>
        <ul class="navbar-nav mr-auto mt-2 mt-lg-0">
            <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>

        <form class="form-inline my-2 my-lg-0">
            <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>
    </div>
</nav>


<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="navbarTogglerDemo02">
        <a class="navbar-brand" href="#">Hidden brand</a>
        <ul class="navbar-nav mt-2 mt-lg-0">
            <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>

        <form class="form-inline my-2 my-lg-0">
            <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>
    </div>
</nav>


<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" rel="stylesheet"/>

因此,如果您想将整个菜单右对齐,您有两个简单的选择。下面的示例在品牌 <a> 标签上使用 .mr-auto class。您的另一个选择可能是将 <ul> 元素上的 .mr-auto class 更改为 .ml-auto

<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="navbarTogglerDemo02">
        <a class="navbar-brand mr-auto" href="#">Hidden brand</a>
        <ul class="navbar-nav mt-2 mt-lg-0">
            <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>

        <form class="form-inline my-2 my-lg-0">
            <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>
    </div>
</nav>


<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" rel="stylesheet"/>