增加bootstrap下拉菜单宽度

时间:2014-04-13 11:30:00

标签: jquery html css twitter-bootstrap bootstrap-4

想知道是否有人有关于如何增加下拉宽度的任何提示?

我有一行包含两个带有一些javascript的列,可以在选中时向上和向下滑动下拉列表。我遇到的问题是,我似乎无法确定如何在选择时增加下拉宽度,理想情况下,下拉列表将与列大小匹配。但是正在发生的事情是,下拉宽度与下拉列表中的文本大小相同,是否有人建议如何增加下拉宽度以匹配列大小?

<div class="row question">
        <div class="dropdown">
            <div class="col-md-6" data-toggle="dropdown">
                First column
                <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
                    <li>Insert your menus here</li>
                    <li>Insert your menus here</li>
                    <li>Insert your menus here</li>
                    <li>Insert your menus here</li>
                    <li>Insert your menus here</li>
                    <li>Insert your menus here</li>
                </ul>
            </div>
        </div><!-- end of the dropdown -->
        <div class="dropdown">
            <div class="col-md-6" data-toggle="dropdown">
                second column
                <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
                    <li>Insert your menus here</li>
                    <li>Insert your menus here</li>
                    <li>Insert your menus here</li>
                    <li>Insert your menus here</li>
                    <li>Insert your menus here</li>
                    <li>Insert your menus here</li>
                </ul>
            </div>
        </div>
    </div><!--end of the row question -->

<script>
     // ADD SLIDEDOWN ANIMATION TO DROPDOWN //
    $('.dropdown').on('show.bs.dropdown', function(e){
        $(this).find('.dropdown-menu').first().stop(true, true).slideDown();
    });

    // ADD SLIDEUP ANIMATION TO DROPDOWN //
    $('.dropdown').on('hide.bs.dropdown', function(e){
        $(this).find('.dropdown-menu').first().stop(true, true).slideUp();
    });
</script>

7 个答案:

答案 0 :(得分:27)

例如,您可以在包含列表项的<ul>中添加“col-xs-12”类:

<div class="col-md-6" data-toggle="dropdown">
            First column
            <ul class="dropdown-menu col-xs-12" role="menu" aria-labelledby="dLabel">
                <li>Insert your menus here</li>
                <li>Insert your menus here</li>
                <li>Insert your menus here</li>
                <li>Insert your menus here</li>
                <li>Insert your menus here</li>
                <li>Insert your menus here</li>
            </ul>
        </div>

这适用于我网站中的任何屏幕分辨率。该类将匹配列表宽度,它包含div我相信:

enter image description here

答案 1 :(得分:26)

添加以下css类

.dropdown-menu {
    width: 300px !important;
    height: 400px !important;
}

当然,你可以使用符合你需要的东西。

答案 2 :(得分:22)

更新2018

你应该能够像这样使用CSS设置它..

.dropdown-menu {
  min-width:???px;
}

这适用于Bootstrap 3和Bootstrap 4.0.0 (demo)


Bootstrap 4 中的无额外CSS 选项正在使用sizing utils来更改宽度。例如,此处 w-100 (宽度:100%)类用于下拉菜单以填充其父级的宽度....

 <ul class="dropdown-menu w-100">
      <li><a class="nav-link" href="#">Choice1</a></li>
      <li><a class="nav-link" href="#">Choice2</a></li>
      <li><a class="nav-link" href="#">Choice3</a></li>
 </ul>

https://www.codeply.com/go/pAqaPj59N0

答案 3 :(得分:7)

通常我们需要控制下拉菜单的宽度;特别是当下拉菜单包含表格时,这是必不可少的,例如登录表单---然后下拉菜单及其项目应足够宽,以便于输入用户名/电子邮件和密码。

此外,当屏幕小于768像素或当窗口(包含下拉菜单)缩小到小于768像素时,Bootstrap 3会相应地将下拉菜单缩放到屏幕/窗口的整个宽度。我们需要保持这种反复行动。

因此,以下css类可以做到这一点:

@media (min-width: 768px) {
    .dropdown-menu {
        width: 300px !important;  /* change the number to whatever that you need */
    }
}

(我在我的网络应用中使用过它。)

答案 4 :(得分:3)

通常希望将菜单宽度与下拉父级的宽度相匹配。这可以很容易地实现:

.dropdown-menu {
  width:100%;
}

答案 5 :(得分:1)

文本永远不会换行到下一行。文本继续在同一行上,直到遇到
标记。

.dropdown-menu {
    white-space: nowrap;
}

答案 6 :(得分:0)

如果您拥有BS4,则另一个选择可能是:

.dropdown-item { 
  width: max-content !important;
}

.dropdown-menu {

    max-height: max-content;
    max-width: max-content;
}