问题描述
我正在使用新的 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) 来修复,并且拆下 input
和 button
两边的 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。