Bootstrap 4 - 如何在 Navbar 中设置 100% 宽度的搜索输入?

Bootstrap 4 - how to make 100% width search input in Navbar?

如何使导航栏中的搜索输入宽度为 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>

这是fiddle:

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

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

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

<!-- 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 that varies the width of the search on desktop/mobile (only full width on mobile) from my


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>    

在Bootstrap4中,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