【问题标题】:select2 with bootstrap theme - inside collapse带有引导主题的 select2 - 内部折叠
【发布时间】:2016-11-06 20:18:33
【问题描述】:

初始化隐藏时,我无法让 select2 下拉菜单适合父容器(折叠)。我知道这不是错误,因为 select2 无法计算父宽度。但我无法克服这一点。我需要它是 100% 的父母。

<div class="panel panel-default">
  <div class="panel-body">
    <div class="btn-toolbar">
      <button class="btn btn-default" data-toggle="collapse" data-target="#collapse-select2" aria-expanded="false">Toggle</button>
    </div>
    <div class="collapse" id="collapse-select2">
      <select class="form-control" data-role="select2">
        <option value="1">Option #1</option>
        <option value="2">Option #2</option>
        <option value="3">Option #3</option>
      </select>
    </div>
  </div>
</div>

小提琴:here

有人可以帮忙吗?

【问题讨论】:

标签: css twitter-bootstrap select2


【解决方案1】:

其实很简单的解决方案:

1.仅 CSS 解决方案
.select2 100% 宽度并用!important 覆盖,如下所示:

.select2 {
  width: 100%!important; /* overrides computed width, 100px in your demo */
}

这也是你更新的小提琴https://jsfiddle.net/1agwbfmy/6/


2。选择的样式标签
另一种方法,如documentation 中所写,使用style&lt;select&gt; 元素赋予宽度,它将从那里获取属性:
&lt;select class="form-control" data-role="select2" style="width:100%"&gt;


3.插件配置
最后,在jQuery中调用插件时可以设置宽度(写在old docs):

$('select[data-role="select2"]').select2({
    theme: 'bootstrap',
    width: '100%'
});

【讨论】:

  • 我在全局初始化它时选择了 *3*rd 选项,并希望每个控件都继承它。
  • 你会得到与第一个解决方案相同的结果,因为.select2 会将宽度全局应用于该类的所有选择(只要你使用这个类来绑定 select2 js,它就可以工作很好)
  • 但我更喜欢 JS 而不是 CSS ?
【解决方案2】:

在配置中使用width: '100%' 属性。

$('[data-role="select2"]').select2({
   width: '100%',
   ...
});

【讨论】:

  • 你的也是正确的,但我选择@moped 是为了解释和敏捷。 :)
猜你喜欢
  • 2015-06-04
  • 2014-02-21
  • 2013-03-10
  • 1970-01-01
  • 1970-01-01
  • 2014-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多