将导航栏切换按钮对齐到右侧

8

我正在尝试使用Bootstrap 4,更具体地说是navbar菜单。有没有办法让小的导航栏切换按钮靠右对齐而不是浮动在左侧并紧挨着logo?

输入图像描述

这是我的当前代码。

@media (min-width: 992px) {
    .navbar-nav li a { line-height: 85px; }
}

@media (max-width: 991px) {
    .navbar-brand { float: none; }
}

.navbar-toggler{
    border:none;
    width:1em;
}
 <nav class="navbar navbar-light bg-faded navbar-full">
          <a class="navbar-brand" href="#"><img class="img-fluid" src="img/logoMedium.png" /></a>
          <button class="navbar-toggler hidden-lg-up" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"></button>
          <div class="collapse navbar-toggleable-md" id="navbarResponsive">
              <ul class="nav 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="#">About Us</a>
                  </li>
                  <li class="nav-item">
                      <a class="nav-link" href="#">Solar Power</a>
                  </li>
                  <li class="nav-item">
                      <a class="nav-link" href="#">No Obligation Quote</a>
                  </li>
                  <li class="nav-item">
                      <a class="nav-link" href="#">Contact Us</a>
                  </li>
              </ul>
          </div>
      </nav>

感谢您的帮助 :)

2
在你的按钮上使用“navbar-toggler-right”类来切换可以帮助你实现这个功能。 - Nimmi
11个回答

28

只需将ml-auto类添加到您的切换按钮中,这样可以使左边距为自动对齐。

<button type="button" class="navbar-toggler ml-auto hidden-sm-up float-xs-right" data-toggle="collapse" data-target="#navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"></button>

3

使用.float-xs-right类:

<button class="navbar-toggler hidden-lg-up float-xs-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"></button>

或者在下面的代码段中向.navbar-toggler添加float: right;

请注意,v4中已删除了pull-right。

@media (min-width: 992px) {
  .navbar-nav li a {
    line-height: 85px;
  }
}
@media (max-width: 991px) {
  .navbar-brand {
    float: none;
  }
}
.navbar-toggler {
  border: none;
  width: 1em;
  float: right;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/js/bootstrap.min.js"></script>
<nav class="navbar navbar-light bg-faded navbar-full">
  <a class="navbar-brand" href="#">
    <img class="img-fluid" src="img/logoMedium.png" />
  </a>
  <button class="navbar-toggler hidden-lg-up" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"></button>
  <div class="collapse navbar-toggleable-md" id="navbarResponsive">
    <ul class="nav 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="#">About Us</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Solar Power</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">No Obligation Quote</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Contact Us</a>
      </li>
    </ul>
  </div>
</nav>


1

try this piece of code:

    .navbar-toggler {  
  margin-left: 90% !important;
}

1
将类 pull-right 添加到代码中,就可以得到您想要的结果。
<button class="navbar-toggler hidden-lg-up pull-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"></button>

或者您可以使用以下参数定义样式:
float: right !important;

你可以更具体地告诉我应该添加到哪个标签吗?因为我尝试使用 pull-right 标签,但并没有成功。 - user3599852
请看一下。 - Dan
1
谢谢你的帮助,但我已经尝试过了,没有任何效果。 - user3599852
1
.pull-right和.pull-left已从Bootstrap 4中删除:https://v4-alpha.getbootstrap.com/migration/#utilities - Juan Pablo Rinaldi

0

以下是我在Bootstrap 4中使用的有效方法。

<button type="button" class="navbar-toggler navbar-toggler-right"
        data-toggle="collapse" data-target=".navbar-collapse"
        aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation">

甚至更简单的是从Bootstrap文档开始

<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>


0
在Bootstrap 5中,您只需添加“ms-auto”类,您的切换器就会从左侧移动到右侧。
<button class="navbar-toggler ms-auto" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
  <span class="navbar-toggler-icon"></span>
</button>

你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

0

只需使用 navbar-expand-lg,您的问题就会得到解决。

它应该看起来像这样:

<nav class="navbar navbar-expand-lg navbar-light bg-light fixed-top">

0

 .navbar-light .navbar-nav .nav-link {
    color: rgb(255, 255, 255) !important;
}
.navbar {
    
    display: block !important;
        min-height: 54px;
    }
    .pull-right{
    float:right !important;
    }
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">

<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<!-- Popper JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>

<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
</head>
<body>
       <nav class="navbar navbar-expand-lg navbar-light bg-light" style="background-color: #de7a22 !important;">
           
            <button class="navbar-toggler pull-right" type="button" data-toggle="collapse" data-target="#myNavbar" aria-controls="myNavbar" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>

            <div class="collapse navbar-collapse" id="myNavbar">
                <ul class="navbar-nav mr-auto">
                    <li class="nav-item active">
                        <a class="nav-link" href="#"><i class="fa fa-home"></i><span class="sr-only">(current)</span></a>
                    </li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">Home</a></li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">About</a></li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">Gallery</a></li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">Services</a></li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">Sponsorship</a></li>
                    <li class="nav-item">
                        <a class="nav-link" href="#">Contact us</a></li>
                  
                </ul>

            </div>

        </nav>
        </body>


你的解决方案需要一些解释会更有帮助。 - Alex M

0

我试过上面的解决方案都没用。所以这个简单的小技巧可以解决问题:

HTML

<nav class="navbar navbar-expand-lg navbar-light bg-light sticky-top">
  <div class="container-fluid">
    <div class="row d-inline">
      <div class="col">
        <a class="navbar-brand" href="{% url 'home' %}">
          <img src="{% static  'img/logo.png' %}" alt="Logo" height="100" class="d-inline-block">
          <span class="fs-2">Abstract Spacecraft</span>
        </a>
      </div>
      <div class="col">
        <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" 
          aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation" id="as-navbar-toggler">
          <span class="navbar-toggler-icon"></span>
        </button>
      </div>
    </div>

CSS

#as-navbar-toggler {
    position: absolute;
    right: 5px;
    top: 5px;
    height: 35px;
    padding: 0px;
}

在Chrome的iPhone5屏幕模拟器中的结果:输入图像说明

这个好处是因为没有填充,它可以很好地覆盖默认的(居中)页面标题。


我认为如果标志很小,导航栏切换按钮会与标题发生冲突。我真的是一个Bootstrap新手,并且正在寻找有关我的代码的任何建议。 - D Left Adjoint to U

0

您需要像对待另一个按钮标签一样对齐它,首先将其包装在容器中以便稍后移动,然后创建一个带有 .text-right 类的 div,然后将您的切换按钮放入其中。请参见下面的示例。

<div class='container'>
   <div class='text-right'>
      <button> Button1 </button>
   </div>    
</div>

或者

<div class='container text-right'>       
   <button> Button1 </button>       
</div>enter code here

两个方案在Bootstrap 4.5中都运行完美。


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