导航栏搜索表单的bootstrap示例只有一个文本框。
我希望能够在开头添加搜索图标,就像Twitter在搜索框中所做的那样。我怎么能用bootstrap做到这一点?
这是我到目前为止所尝试的但它失败了: http://jsfiddle.net/C4ZY3/3/
答案 0 :(得分:54)
以下是如何在 Bootstrap 2.3.2 中使用:before
伪选择器和字形,而不是输入中的背景图像。
以下是一些简单示例:http://jsfiddle.net/qdGZy/
<style type="text/css">
input.search-query {
padding-left:26px;
}
form.form-search {
position: relative;
}
form.form-search:before {
content:'';
display: block;
width: 14px;
height: 14px;
background-image: url(http://getbootstrap.com/2.3.2/assets/img/glyphicons-halflings.png);
background-position: -48px 0;
position: absolute;
top:8px;
left:8px;
opacity: .5;
z-index: 1000;
}
</style>
<form class="form-search form-inline">
<input type="text" class="search-query" placeholder="Search..." />
</form>
<小时/> 更新Bootstrap 3.0.0
这是bootstrap 3.0的更新小提琴:http://jsfiddle.net/66Ynx/
答案 1 :(得分:50)
其中一种方法是在字段中添加左边距并为字段添加背景图像。
参见示例:http://jsfiddle.net/hYAEQ/
twitter.com不是这么做的,他们在搜索字段上方使用了绝对位置元素,因为它们在单个精灵中都有所有图像,并且不能轻易地将它们用作背景,但它应该这样做。
我使用内嵌图像作为背景,以便更容易将其发布到jsfiddle,但可以随意使用图像的常规链接。
编辑:使用引导精灵和图标的附加容器来实现它的方法 http://jsfiddle.net/hYAEQ/2/
编辑2:
修复了白色引导主题:http://jsfiddle.net/hYAEQ/273/
编辑3:
如果您使用的是navbar-inverse(黑色导航栏),则需要进行此小调整:http://jsfiddle.net/hYAEQ/410/
.navbar-search .search-query {
padding-left: 29px !important;
}
答案 2 :(得分:9)
玩这个小提琴,我在你的弓上放了一些松香: http://jsfiddle.net/pYRbm/
.fornav {
position:relative;
margin-left:-22px;
top:-3px;
z-index:2;
}
<div class="navbar">
<div class="navbar-inner">
<div class="container">
<form class="navbar-search">
<div class="input-append">
<input type="text" class="search-query span2" placeholder="Search…"><span class="fornav"><i class="icon-search"></i></span>
</div>
</form>
</div>
</div>
</div>
答案 3 :(得分:4)
你也不能通过使用前置表格输入来触摸css
<form class="navbar-search">
<div class="input-prepend">
<span class="add-on"><i class="icon-search"></i></span><input name="url" type="text" class="span2" placeholder="Page Url">
</div>
</form>
请注意,</span>
和<input>
之间的空格会在图标和文本框之间产生间隙。
答案 4 :(得分:4)
在bootstrap 3.x.x中
<div class="input-group">
<input type="text" class="form-control" id="search">
<span class="input-group-addon"><i class="glyphicon glyphicon-search"></i></span>
</div>
答案 5 :(得分:2)
新版本2.1.1解决了这个问题。它不处理15像素半径的情况,所以我继续并相应地设计它。我还添加了navbar-inverse以获得乐趣。
有几点需要注意。 CSS可以更好地优化,但最近我被更少的宠坏了。最后,放大镜左侧有一个非常轻微,几乎看不见的左边框。我不确切知道是什么导致了它,但很可能是盒子阴影。
请随意分叉并改进。
答案 6 :(得分:1)
对于那些使用Rails的人来说,我的解决方案并不是最美丽的,但却有效。
<%= form_tag PATH_TO_MODEL, :method => 'get', :class => "navbar-search" do %>
<%= text_field_tag :search, params[:search], :class => "search-query",
:style => "padding-left:29px" %>
<div class="icon-search" style="position:absolute;top:7px;left:11px;"></div>
<% end %>
答案 7 :(得分:1)
在这个派对上迟到了......
我使用以下内容将搜索输入实现为图标
<div class="input-append">
<input id="appendedInputButton" class="span6" type="text" placeholder="Search...">
<button class="btn" type="button"><i class="icon-search"></i></button>
</div>
答案 8 :(得分:-1)
你应该改变你的方法。使用span.search-query
作为叠加层 - 在这里您有最重要的事情:
.navbar-search { position: relative } /* wrapper */
.search-query { position: absolute; left: 0; top: 0; z-index: 2; width: x } /* icon */
.span3 { position: relative; z-index: 1; padding-left: x } /* input */