我知道这个问题之前已经问过至少三次,但我看到的答案并不是我想要的。我想要增加 Twitter Bootstrap 的 typeahead 功能生成的自动完成字段的宽度。我一直在阅读关于它会延伸以覆盖字段内所有文本的内容。也就是说,文本越长,自动完成字段就越宽。然而,我希望它是 span6,因为我的搜索字段宽度就是这么宽。有什么想法吗?我看到了一些 jQuery 的答案,但我无法理解。
我知道这个问题之前已经问过至少三次,但我看到的答案并不是我想要的。我想要增加 Twitter Bootstrap 的 typeahead 功能生成的自动完成字段的宽度。我一直在阅读关于它会延伸以覆盖字段内所有文本的内容。也就是说,文本越长,自动完成字段就越宽。然而,我希望它是 span6,因为我的搜索字段宽度就是这么宽。有什么想法吗?我看到了一些 jQuery 的答案,但我无法理解。
迈克尔·沃森在他的评论中给出了我认为是最简单的答案。
.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%; }
typeahead
和dropdown-menu
的.dropdown-menu
{
width: .... px;
}
span6的宽度不是固定的,因此您需要一些媒体查询来使其响应。
对于Bootstrap 3,typeahead函数已从TB3中删除,而改用https://github.com/twitter/typeahead.js/。您需要加载一些额外的CSS才能将其与Twitter的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');});
$(document).on('typeahead:opened', function(event, datum) {
var width = $(event.target).width();
$('.tt-dropdown-menu').width(width);
});
我正在使用Bootstrap 3.2.0和typeahead.js-bootstrap3.less,并将输入框嵌套在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%;
}
.dropdown-menu
是绝对定位的,因此将position: relative;
添加到包装在uib-typeahead
输入字段周围的div中,并将width: 100%;
设置为.dropdown-menu
,即可解决问题。.typeahead-search {
position: relative;
}
.dropdown-menu {
width: 100%;
}
.overflow-ellipsis { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
- Joe McLean这是针对新版本:
.twitter-typeahead, .tt-menu
{
display: block !important;
}
.tt-hint
,但这对我有效。 - Steve.twitter-typeahead, .tt-hint, .tt-input, .tt-dropdown-menu { width: 100%; }
- vma.tt-dropdown-menu
现在是.tt-menu
,所以新的东西是:.twitter-typeahead, .tt-hint, .tt-input, .tt-menu { width: 100%; }
。这真是一团糟。 - mlissner!important
来覆盖其他样式(我正在使用Semantic UI)。 - MK Yung