web-dev-qa-db-fra.com

Bootstrap 4 - comment faire une entrée de recherche à 100% de largeur dans Navbar?

Comment faire 100% de la largeur de l'entrée de recherche dans la barre de navigation?

enter image description here

Le champ est limité en largeur:

<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>

Voici le violon:

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

25
Nikolay Lipovtsev

Mise à jour 2019

À partir de Bootstrap 4 la Navbar est flexbox donc la création d'une entrée de recherche pleine largeur est plus facile. Vous pouvez simplement utiliser w-100 et d-inline classes utilitaires:

<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


Bootstrap 3 (réponse originale)

Vous pouvez utiliser le text-truncate pirater la dernière barre de navigation li comme ça ..

<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>    

Dans Bootstrap 4, text-truncate définira:

   overflow: hidden;
   white-space: nowrap;

Cela permet au formulaire de recherche de remplir la largeur restante et non d'envelopper.

Démo http://www.codeply.com/go/22naSu3c0E

Une autre option consiste à utiliser 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

30
Zim