我知道此问题至少被问过三次,但我看到的答案并不是我想要的。我希望增加twitter bootstrap使用其typeahead函数生成的自动完成字段的宽度。我一直在阅读它延伸到覆盖现场的所有文本。也就是说文本越长,自动完成字段越宽。但是我希望它是span6,因为这是我的搜索字段的宽度。有任何想法吗?我已经看到了一些jquery的答案,但我无法遵循它们。
答案 0 :(得分:62)
.twitter-typeahead { width: 100%; }
更新#1:根据以下评论(感谢Steve,Vishi),对.tt-hint
,.tt-input
,.tt-dropdown-menu
执行相同操作。
更新#2: mlissner报告.tt-dropdown-menu
现在是.tt-menu
,因此最终结果是
.twitter-typeahead, .tt-hint, .tt-input, .tt-menu { width: 100%; }
答案 1 :(得分:8)
下拉菜单是一个带有typeahead
dropdown-menu
类的ul,您可以使用CSS来设置它的宽度:
.dropdown-menu
{
width: .... px;
}
span6的宽度不是静态的,因此您需要一些媒体查询才能使其响应。
对于 Bootstrap 3 ,从TB3中删除预先输入功能,而不是使用https://github.com/twitter/typeahead.js/。 你需要一些additional CSS来将它与Twitter的Bootstrap集成。你需要加载一些额外的CSS才能获得typeahead.js
下拉菜单以适应默认的Bootstrap主题。试试extended Bootstrap's LESS或者如果您正在寻找更多更加扩展的版本,请尝试:typeahead.js-bootstrap3.less。
下拉菜单现在设置为.tt-dropdown-menu类。您可以尝试将宽度设置为动态,而不是更改CSS。使用typeahead输入标签类:
$('.typeahead').typeahead({})
on('typeahead:opened',function(){$('.tt-dropdown-menu').css('width',$('.typeahead').width() + 'px');});
答案 2 :(得分:4)
要使下拉列表与字段宽度匹配,您需要这样的内容:
$(document).on('typeahead:opened', function(event, datum) {
var width = $(event.target).width();
$('.tt-dropdown-menu').width(width);
});
使用event.target和全局文档侦听器对上面的小改进。
答案 3 :(得分:2)
我正在使用带有typeahead.js-bootstrap3.less的Bootstrap 3.2.0并在div中嵌套输入:
<div class="form-group">
<label>my label</label>
<div class="col-md-4">
<div class="input-group tt-input-group">
<input id="mytypeahead" class="form-control" />
</div>
</div>
</div>
我还需要将此添加到我的css中:
.tt-input-group {
width: 100%;
}
答案 4 :(得分:1)
这是一个纯CSS解决方案:
由于.dropdown-menu
的位置是绝对的,因此将position: relative;
添加到环绕uib-typeahead
输入字段的div中并将width: 100%;
设置为.dropdown-menu
即可解决此问题。
您的CSS看起来像这样:
.typeahead-search {
position: relative;
}
.dropdown-menu {
width: 100%;
}
答案 5 :(得分:0)
这适用于较新版本:
.twitter-typeahead, .tt-menu
{
display: block !important;
}