问题描述

如何设置引导 3.0 中下拉式触发按钮的宽度等于下拉列表的宽度?与使用 bootstrap-select(http://silviomoreto.github.io/bootstrap-select/) 时相同。我试图将整个列表包含在一个带有 col- *类的 div 中,但这似乎不起作用:

<div class="row">
<div class="col-xs-4 col-md-4">
    <div class="dropdown">
      <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown">Button</button>
          <ul class="dropdown-menu" role="menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Action</a></li>
            <li><a href="#">Action</a></li>
          </ul>
    </div>
</div>

因此,我想:button width = dropdown menu list = col- * width 。

最佳解决办法

我通过设置 dropdown-menu 和按钮宽度= 100%找到解决方案。

.dropdown-menu {
  width: 100%; 
}

.btn{
 width: 100%;
}

现在,按钮和下拉列表都具有相同的宽度,由列宽控制。

次佳解决办法

如果我理解正确,您想根据较大的选项来设置菜单宽度,您必须覆盖.dropdown-menu 列表的 min-width 属性,如:

.dropdown-menu {
    min-width: 0px !important;
}

演示:http://jsfiddle.net/faxyz/4/

第三种解决办法

您可以设置.dropdown-toggle. 的宽度,当下拉列表变得太小时,我建议使用 text-overflow 省略号。没有必要设计.dropdown-menu 。如果要在.input-group 或网格中使用它,可以将下拉列表的宽度设置为任何其他值。

.dropdown-toggle {   
    overflow: hidden;
    padding-right: 24px /* Optional for caret */;
    text-align: left;
    text-overflow: ellipsis;    
    width: 100%;
}

/* Optional for caret */
.dropdown-toggle .caret {
    position: absolute;
    right: 12px;
    top: calc(50% - 2px);
}

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。