Bootstrap 4 - 如何在导航栏中进行 100% 宽度的搜索输入?

Posted

技术标签:

【中文标题】Bootstrap 4 - 如何在导航栏中进行 100% 宽度的搜索输入?【英文标题】:Bootstrap 4 - how to make 100% width search input in Navbar? 【发布时间】:2017-02-08 14:36:38 【问题描述】:

如何使导航栏中的搜索输入宽度达到 100%?

字段宽度有限:

<nav class="navbar navbar-light navbar-dark bg-inverse">
  <a class="navbar-brand" href="#">Navbar</a>
  <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="#">Features</a>
    </li>
    <li class="nav-item">
      <a class="nav-link" href="#">Pricing</a>
    </li>
    <li class="nav-item">
      <a class="nav-link" href="#">About</a>
    </li>
  </ul>

  <ul class="nav navbar-nav pull-xs-right">
    <li class="nav-item">
      <form class="form-inline ">
        <input class="form-control" type="text" placeholder="Search">
        <button class="btn btn-outline-success" type="submit">Search</button>
      </form>
    </li>
    <li class="nav-item">
      <a class="nav-link" href="#">User Name</a>
    </li>
  </ul>
</nav>

这是小提琴:

https://jsfiddle.net/Dieselnick/tdoz2o4d/

【问题讨论】:

添加更多细节您希望我们为您做什么? 【参考方案1】:

2019 年更新

Bootstrap 4 开始,导航栏是 flexbox,因此创建全角搜索输入更加容易。您可以简单地使用 w-100d-inline 实用程序类:

<form class="mx-2 my-auto d-inline w-100">
   <div class="input-group">
      <input type="text" class="form-control" placeholder="...">
       <span class="input-group-append">
       <button class="btn btn-outline-secondary" type="button">GO</button>
       </span>
    </div>
</form>

http://www.codeply.com/go/sbfCXYgqoO

这是另一个在折叠导航栏 outside 的搜索输入示例:

<!-- search input not in navbar collapse -->
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
    <div class="d-flex flex-grow-1">
        <a href="/" class="navbar-brand">Codeply</a>
        <form class="mr-2 my-auto w-100 d-inline-block order-1">
            <div class="input-group">
                <input type="text" class="form-control border border-right-0" placeholder="Search...">
                <span class="input-group-append">
                    <button class="btn btn-outline-light border border-left-0" type="button">
                        <i class="fa fa-search"></i>
                    </button>
                </span>
            </div>
        </form>
    </div>
    <button class="navbar-toggler order-0" type="button" data-toggle="collapse" data-target="#navbar7">
        <span class="navbar-toggler-icon"></span>
    </button>
    <div class="navbar-collapse collapse flex-shrink-1 flex-grow-0 order-last" id="navbar7">
        <ul class="navbar-nav">
            ..
        </ul>
    </div>
</nav>

http://www.codeply.com/go/sbfCXYgqoO

最后,another example 改变了我的answer here 在桌面/移动设备上的搜索宽度(仅在移动设备上全宽)


Bootstrap 3(原始答案)

您可以像这样在最后一个导航栏li 上使用text-truncate hack..

<li class="text-truncate">
        <form class="input-group">
            <input class="form-control" name="search" placeholder="Search Here" autocomplete="off" autofocus="autofocus" type="text">
            <div class="input-group-btn">
                <button class="btn btn-outline-success" type="submit">Search</button>
            </div>
        </form>
</li>    

在 Bootstrap 4 中,将设置 text-truncate:

   overflow: hidden;
   white-space: nowrap;

这使搜索表单能够填充剩余的宽度而不是换行。

演示 http://www.codeply.com/go/22naSu3c0E

另一种选择是使用table-cell

<form>
        <div class="table-cell"> &nbsp; </div>
        <div class="table-cell fill-width">
            <input class="form-control" name="search" placeholder="Search Here" autocomplete="off" autofocus="autofocus" type="text">
        </div>
        <div class="table-cell">
            <button class="btn btn-outline-success" type="submit">Search</button> 
        </div>
</form>

http://www.codeply.com/go/JdbPvotSXg

【讨论】:

感谢您使用 Bootstrap 4 对 2019 年进行的编辑。它非常棒,您能告诉我如何在移动设备上查看时将此全角搜索输入作为辅助导航吗? 这确实使输入全角;但是,它要求表单输入位于navbar-collapse 中。如果没有父级可折叠 div,是否可以实现这一目标? 是的,在这里查看第三个导航栏:codeply.com/go/sbfCXYgqoO .. 我也更新了答案 在您的第二个示例中,如果您将“mr-4 my-2”添加到 navbar-brand 元素,那么一切都非常适合。顺便说一句:谢谢你的例子;) w-50 或 w-70 不适合我。只有 w-100 工作。

以上是关于Bootstrap 4 - 如何在导航栏中进行 100% 宽度的搜索输入?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Bootstrap 4 和 Angular 7 在导航栏中制作多级下拉菜单

请问如何设置bootstrap导航栏中的菜单项居中均匀分布?谢谢

如何在 Bootstrap 3 的导航栏中添加带有图标的搜索框?

如何在折叠的导航栏中默认打开 Bootstrap 3 下拉菜单

Bootstrap 3:如何在导航栏中使下拉链接的头部可点击

如何在 bootstrap 3 导航栏中使 select2 v4 搜索框响应?