【问题标题】:How do you position navbar items to the right in Bootstrap 4? [duplicate]您如何在 Bootstrap 4 中将导航栏项目定位在右侧? [复制]
【发布时间】:2018-05-24 09:26:33
【问题描述】:

我是新手,想问一下您如何在 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>

【问题讨论】:

  • 您要对齐到右侧的具体内容是什么?你有这个问题:是什么让搜索表单向右对齐?所以它是在表单前面的标签上设置的.mr-auto

标签: html twitter-bootstrap bootstrap-4 twitter-bootstrap-4 twitter-bootstrap-4-beta


【解决方案1】:

是导航栏菜单上设置的.mr-auto 类(&lt;ul&gt; 标记)将表单推到右侧。

#navbarTogglerDemo01 标签有 3 个直接子标签:&lt;a&gt;&lt;ul&gt;&lt;form&gt; 标签。通常它们都会左对齐,但上面提到的类将&lt;ul&gt; 标签的右边距设置为自动。 这是实际的 css 样式:

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

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

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

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

因此,如果您想将整个菜单向右对齐,那么您有两个简单的选择。下面的示例使用品牌 &lt;a&gt; 标签上的 .mr-auto 类。您的另一个选择可能是将 &lt;ul&gt; 元素上的 .mr-auto 类更改为 .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"/>

【讨论】:

  • mr-auto 未将 nav-items.to 向右对齐。请查看不起作用的代码,我添加了它们。
  • 检查更新的答案。简而言之,您可以在&lt;a&gt; 标签上使用.mr-auto,或者在原始&lt;ul&gt; 标签上使用.ml-auto
  • 所以自动边距占用尽可能多的空间?
  • 是的。还以.container 类为例,它的margin-leftmargin-right 属性都设置为auto。这意味着它的设置宽度将在视口中居中。
猜你喜欢
  • 2020-06-17
  • 2017-03-03
  • 2017-06-11
  • 2017-08-02
  • 1970-01-01
  • 2020-04-18
  • 2019-03-19
  • 2019-03-25
相关资源
最近更新 更多