【问题标题】:Bootstrap 4 Navbar search box not aligning in centerBootstrap 4导航栏搜索框未在中心对齐
【发布时间】:2020-01-21 21:05:55
【问题描述】:

我已经解决了几乎所有关于导航栏中的居中对齐元素的问题,但还没有找到答案。

我一直在尝试将导航栏内的搜索栏居中对齐,但在可折叠按钮之外。问题是,无论我做什么,我都无法在中心找到搜索框。它只是停留在左边。

但是,如果我将视口缩小,只要右侧的链接在可折叠按钮内消失,搜索框就会在中心很好地对齐。这是我的导航栏代码:

<header>
  <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
    <a class="navbar-brand" href="#">Carousel</a>
    <form class="form-inline justify-content-center" style="text-align: center;">
      <input class="form-control mr-sm-2"type="text" placeholder="Search" aria-label="Search">
      <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
    </form>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarCollapse">
      <ul class="navbar-nav ml-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="#">Log in</a>
        </li>
      </ul>
    </div>
  </nav>
</header>

我希望搜索框位于可折叠按钮之外,但居中对齐。我尝试添加 mx-auto 以及宽度,但它不起作用。我已经尝试了几十个关于 SO 的其他问题,但还没有解决。

我附上截图供您参考 全宽时,搜索栏不居中对齐

可折叠按钮一出现就一切正常。

如何让搜索框居中对齐?
另外,有没有办法在不使用显式 CSS 样式的情况下增加搜索框的宽度,因为这会破坏响应行为?

【问题讨论】:

  • 我目前无法使用代码编辑器,但我认为您应该在此处使用边距,看看有什么帮助。首先尝试在表单中添加margin left auto,然后margin right auto...Bootstrap4大量使用flex,大多数时候,自动margin解决了这个问题
  • @EmekeAjeh 我试过了。没有区别

标签: html css twitter-bootstrap


【解决方案1】:

我刚刚在How to put form element (search bar) into the center of the navbar?回答了一个类似的问题

您可以分两步将搜索表单与导航栏的中心对齐。

  • 将搜索栏和右侧的可折叠菜单包装到单独的父级div
  • justify-content-between 类添加到导航栏

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet" />

<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark justify-content-between">
  <a class="navbar-brand" href="#">Carousel</a>
  <div>
    <form class="form-inline justify-content-center" style="text-align: center;">
      <input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search">
      <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
    </form>
  </div>
  <div>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
    <div class="collapse navbar-collapse" id="navbarCollapse">
      <ul class="navbar-nav ml-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="#">Log in</a>
        </li>
      </ul>
    </div>
  </div>
</nav>

【讨论】:

  • “我希望搜索框位于可折叠按钮之外”
  • @NathanielFlick 搜索框位于可折叠按钮之外。我只是将可折叠菜单和搜索栏移到单独的容器(div)中
  • 检查并查看 OP 是否希望搜索字段与导航项列表一起使用?
  • @NathanielFlick 我没有更改页面的布局方式,只是将 2 个单独的元素(导航项/搜索字段)包装到 2 个单独的容器中。这使它们可以均匀分布。
  • 是的,它做到了。知道如何增加盒子的长度吗?
猜你喜欢
  • 1970-01-01
  • 2019-02-04
  • 2018-02-03
  • 1970-01-01
  • 2021-03-04
  • 2014-01-16
  • 2018-08-12
  • 2016-06-10
  • 2019-06-20
相关资源
最近更新 更多