Bootstrap 4导航栏折叠菜单右对齐

12
我正在使用Bootstrap 4,并尝试使通过点击折叠按钮弹出的菜单在右侧而不是左侧打开。我尝试在“ul”元素上使用“ml-auto”。当未折叠时,导航栏项目正确地位于右侧。当它被折叠时,按钮位于正确的右侧,但菜单在左侧弹出。我也尝试在div中放置“ml-auto”,但没有作用。这是我的HTML代码:
<nav class="navbar navbar-expand-lg navbar-dark fixed-top">
    <a class="navbar-brand" href="#home"><img id="logo" class="no-opacity" src="content/white-logo.png"></a>
    <button class="navbar-toggler ml-auto" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>

    <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav ml-auto">
            <li class="nav-item">
                <a class="nav-link" href="#home"><i class="fa fa-home fa-fw" aria-hidden="true"></i>&nbsp;Home</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#about"><i class="fa fa-user fa-fw" aria-hidden="true"></i>&nbsp;About</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#projects"><i class="fa fa-folder-open fa-fw" aria-hidden="true"></i>&nbsp;Projects</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#experience"><i class="fa fa-briefcase fa-fw" aria-hidden="true"></i>&nbsp;Experience</a>
            </li>       
            <li class="nav-item">
                <a class="nav-link" href="#contact"><i class="fa fa-envelope fa-fw" aria-hidden="true"></i>&nbsp;Contact</a>
            </li>                     
        </ul>
    </div>
</nav>

我觉得有一个简单的解决方案,但我想不出来。

3个回答

15

只需要在你的CSS中添加简单的规则即可。

 .nav-item{
    text-align: right;
}

1
哈哈,这是一个非常简单的解决方案。谢谢! - TylerKVu
1
这在Bootstrap 4中对我不起作用。它确实使文本右对齐,但由于我的导航项受到宽度限制,它们仍然全部停留在左侧。 - Pavel Komarov

4
根据http://getbootstrap.com/docs/4.0/components/navs/#horizontal-alignment,在导航栏折叠下拉菜单中居中、右对齐或左对齐的方法是,在navclass中使用justify-content-end等属性。

例如,此代码生成其后的图片。

<nav class="navbar navbar-expand-lg fixed-top">
    <div class="container">
        <!-- Brand and toggle get grouped for better mobile display -->
        <ul class="list-inline social-buttons">
            {% for link in site.social %}
            <li class="list-inline-item">
                <a href="{{ link.url }}"><i class="{{ link.icon }}"></i></a>
            </li>
            {% endfor %}
        </ul>

        <div class="navbar-toggler" data-toggle="collapse" data-target="#menu">
            &#9776;<!-- three bars symbol -->
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="menu">
            <ul class="nav ml-auto">
                <a class="nav-link page-scroll" href="#about">About</a>
                <a class="nav-link page-scroll" href="#projects">Projects</a>
                <a class="nav-link page-scroll" href="#writing">Writing</a>
                <a class="nav-link page-scroll" href="#contact">Contact</a>
            </ul>
        </div>
    </div>
</nav>

enter image description here

现在将那一行修改为:

<div class="nav ml-auto justify-content-end">

产生。

enter image description here

请注意,这显然与ml-auto无关。如果缺少ml-auto,则在更宽的屏幕上未折叠的菜单项不会靠右对齐(对我来说,切换按钮本身始终靠右对齐)。只有justify似乎控制未折叠菜单中的内容。

1

只需在HTML中使用"text-right"即可。

例如:

<div class="navbar-collapse text-right" id="navbarResponsive">


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接