web-dev-qa-db-ja.com

Bootstrap 3-ナビゲーションバー内の入力幅を最大化する方法

現在、次のようなナビゲーションバーがあります。 http://bootply.com/78239

改行を作成せずに、「検索」テキスト入力の幅を最大化したい(つまり、「クリア」リンクが「概要」リンクでタイトになる)。

私はcssとWebデザインの基本的な経験しかありません。 「overflow: hidden "トリックですが、ターゲット要素の右側にさらに要素がある場合、その使用方法がわかりません。

ありがとう


編集:

部分的な解決策は、 http://bootply.com/78247 のように、それぞれの場合に「手動で」幅を設定することです。

@media (max-width: 767px) {
  #searchbar > .navbar-form {
    width: 100%;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  #searchbar > .navbar-form {
    width: 205px;
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  #searchbar > .navbar-form {
    width: 425px;
  }
}

@media (min-width: 1200px) {
  #searchbar > .navbar-form {
    width: 625px;
  }
}

ただし、このソリューションは、メニューのテキストが「動的」な場合(たとえば、「He​​lloユーザー名」を含む)には機能しません。

メニューのテキストの幅に制限があると仮定した場合、それは大きな問題ではないと思います-それらの幅を手動で計算/テストするのは面倒です。自動的にそれを行うきちんとした方法があるかどうか知りたいだけです。

21
Oren

Bootstrapバージョン3.2以降では、display:table;input-groupを設定し、1%input-group-addonに幅を設定する必要があります。

<div style="display:table;" class="input-group">
            <span style="width: 1%;" class="input-group-addon"><span class="glyphicon glyphicon-search"></span></span>
            <input type="text" autofocus="autofocus" autocomplete="off" placeholder="Search Here" name="search" style="" class="form-control">
          </div>

デモBootstrapバージョン3.2+: http://www.bootply.com/t7O3HSGlbc

-

Navbar要素の位置の変更を許可する場合は? 「改行を作成せずに(つまり、「クリア」リンクが「概要」リンクと密接になることを)理解できません。」これを試してください: http://bootply.com/78374

私がしたこと:

  • フロートをフォームの左にドロップします(navbar-leftクラスをドロップして)
  • 他のnavbar要素に右フロートを与える(navbar-rightクラス)
  • フォームグループの表示をインラインに設定します(style="display:inline"
  • 要素の位置を変更します(右側が最初にフロートしました)

関連する質問:

html

<div class="navbar navbar-inverse navbar-fixed-top">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">My Project</a>
    </div>
    <div class="navbar-collapse collapse" id="searchbar">

      <ul class="nav navbar-nav navbar-right">
        <li><a href="about.html">About</a></li>
        <li id="userPage">
          <a href="#@userpage"><i class="icon-user"></i> My Page</a>
        </li>
        <li><a href="#logout" data-prevent="">Logout</a></li>
      </ul>
      <ul class="nav navbar-nav navbar-right">
        <li><a href="#" title="Start a new search">Clear</a></li>
      </ul>



     <form class="navbar-form">
        <div class="form-group" style="display:inline;">
          <div class="input-group">
            <span class="input-group-addon"><span class="glyphicon glyphicon-search"></span></span>
            <input class="form-control" name="search" placeholder="Search Here" autocomplete="off" autofocus="autofocus" type="text">
          </div>
        </div>
      </form>

    </div><!--/.nav-collapse -->
  </div>
</div>
39
Bass Jobsen

ここでは、2つのことがうまくいきました。 Orensメディアクエリの追加、およびdisplay: inlineその検索バーフォームグループに:

<li id="searchbar">
          <form id="search_form" class="navbar-form navbar-left navbar-input-group " role="search">
            <div class="input-group">
              <div class="input-group-btn">
                <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">All <span class="caret"></span>
                </button>
              </div>
              <div class="form-group">
                <input name="search_input" type="text" class="form-control typeahead" placeholder="Search for items or shops" autofocus="autofocus">
              </div>
              <span class="input-group-btn">
          <button type="submit" class="btn btn-default"><i class="fa fa-search"></i>
          </button>
          </span>
            </div>
          </form>
        </li>

CSSを使用する場合:

#search_form > .input-group > .form-group {
  display: inline;
}
0
thouliha