問題描述

我正在使用新的 Twitter Bootstrap 3,並且正在嘗試將這樣的搜尋框 (如下) 放在頂部的導航欄中:

在 Bootstrap 2 中,可以這樣做:

<form class="form-search" method="get" id="s" action="/">
    <div class="input-append">
        <input type="text" class="input-medium search-query" name="s" placeholder="Search" value="">
        <button type="submit" class="add-on"><i class="icon-search"></i></button>
    </div>
</form>

但是我不知道如何在 Bootstrap 3 中生成相同的內容,因為這麼多變化。

Bootstrap 3 中導航欄搜尋框的預設 HTML 為:

<form class="navbar-form navbar-left" role="search">
    <div class="form-group">
        <input type="text" class="form-control" placeholder="Search">
    </div>
    <button type="submit" class="btn btn-default">Submit</button>
</form>

我如何修改它以達到我需要的?

最佳解決方案

我在一個開發網站上執行 BS3,以下產生您要求的影響/佈局。當然,您需要在 BS3 中設定的 glyphicons 。

<div class="navbar navbar-inverse navbar-static-top" role="navigation">

    <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" rel="home" href="/" title="Aahan Krish's Blog - Homepage">ITSMEEE</a>
    </div>

    <div class="collapse navbar-collapse navbar-ex1-collapse">

        <ul class="nav navbar-nav">
            <li><a href="/topic/notes/">/notes</a></li>
            <li><a href="/topic/dev/">/dev</a></li>
            <li><a href="/topic/good-reads/">/good-reads</a></li>
            <li><a href="/topic/art/">/art</a></li>
            <li><a href="/topic/bookmarks/">/bookmarks</a></li>
            <li><a href="/all-topics/">/all</a></li>
        </ul>

        <div class="col-sm-3 col-md-3 pull-right">
        <form class="navbar-form" role="search">
        <div class="input-group">
            <input type="text" class="form-control" placeholder="Search" name="srch-term" id="srch-term">
            <div class="input-group-btn">
                <button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button>
            </div>
        </div>
        </form>
        </div>

    </div>
</div>

更新:請參閱 JSFiddle

次佳解決方案

這是最接近的,沒有新增任何自定義 CSS(這個我已經想到的時間提出問題; 猜測我必須堅持這一點):

和使用的標記:

<form class="navbar-form navbar-left" role="search">
    <div class="form-group">
        <input type="text" class="form-control" placeholder="Search">
    </div>
    <button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
</form>

PS:當然可以透過在按鈕上新增一個負數 margin-left(-4px) 來修復,並且拆下 inputbutton 兩邊的 border-radius 。但是,這個問題的全部要點是讓它在沒有任何自定義 CSS 的情況下工作。

第三種解決方案

您可以使用 Bootstrap 3 中的分段按鈕示例:

<form action="" class="navbar-form navbar-right">
   <div class="input-group">
       <input type="Search" placeholder="Search..." class="form-control" />
       <div class="input-group-btn">
           <button class="btn btn-info">
           <span class="glyphicon glyphicon-search"></span>
           </button>
       </div>
   </div>
</form>

第四種方案

最近我使用 bootstrap 3.0 在我的分類網站上實現了這種功能。你可以找到完整的程式碼。希望對您有幫助

http://www.technicalkeeda.com/bootstrap-tutorials/navbar-search-icon-example

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇