【发布时间】:2013-08-23 16:24:00
【问题描述】:
我正在使用 selected.js v1.0 并在我的带有 Bootstrap 3 的项目中使用它,但是我的选择框的样式根本不符合 bootstrap 3 样式。
我做错了吗?我只是使用 $('#select-input').chosen(); 调用了选择框,对吗?
【问题讨论】:
标签: twitter-bootstrap-3 jquery-chosen
我正在使用 selected.js v1.0 并在我的带有 Bootstrap 3 的项目中使用它,但是我的选择框的样式根本不符合 bootstrap 3 样式。
我做错了吗?我只是使用 $('#select-input').chosen(); 调用了选择框,对吗?
【问题讨论】:
标签: twitter-bootstrap-3 jquery-chosen
实际上,有人为 Chosen 创建了 Bootstrap 3.0 CSS 主题。
一些屏幕:
编辑
我创建了a Fiddle,使用与官方选择的文档页面相同的 HTML,并应用了 Bootstrap 主题。 (将form-control 添加到所有选择并删除style="width:350px;")
此外,我将保持这个要点中的主题:https://gist.github.com/koenpunt/6424137
【讨论】:
Chosen 1.0 的备用样式表。这个应该与 Bootstrap 3.0 更好地集成。
【讨论】:
这里还有另一个替代主题支持 Bootstrap 3 https://github.com/dbtek/chosen-bootstrap。
看起来像原生 bs 输入。
【讨论】:
Chosen.js (chosen.css) 和 bootstrap css 都将 CSS 样式添加到您的输入(选择)中。尝试在 bootstrap.css 之后加载choice.css:
<link rel="stylesheet" href="bootstrap3/bootstrap-3.0.0-wip/dist/css/bootstrap.css">
<link rel="stylesheet" href="docsupport/style.css">
<link rel="stylesheet" href="docsupport/prism.css">
<link rel="stylesheet" href="chosen.css">
<style type="text/css" media="all">
/* fix rtl for demo */
.chosen-rtl .chosen-drop { left: -9000px; }
</style>
完成此操作后,请参阅:Right border of the AddThis counter missing with Twitter's Bootstrap 3。似乎 CSS 的通用选择器将 box-sizing 设置为 border-box 造成了大部分麻烦。
要解决此问题,请重置您应用 selected() 的元素的框大小:
如果是$('#select-input').chosen();,你还要设置:
#select-input
{
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
NB 默认情况下 selected.js 捆绑旧版本的 jQuery。 Twitter Bootstrap (javascript) 需要最新版本 (
【讨论】:
如果您想更改选择框的大小以使其具有响应性,您可以使用:
[class*="col-"] .chosen-container {
width:98%!important;
}
[class*="col-"] .chosen-container .chosen-search input[type="text"] {
padding:2px 4%!important;
width:90%!important;
margin:5px 2%;
}
[class*="col-"] .chosen-container .chosen-drop {
width: 100%!important;
}
【讨论】: