48

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

我有一排包含两个列,上面有javaScript的AA位,在选择时上下下拉列表。我遇到的问题是我似乎无法弄清楚如何在选择时增加下拉列表的宽度,理想情况下下拉列表将与列大小匹配。但是正在发生的事情是下拉列表的宽度仅与下拉列表中的文本大小相同,有人对如何增加下拉列表宽度以匹配列大小有任何建议吗?

<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>
4

7 回答 7

51

2018 年更新

你应该可以像这样使用 CSS 来设置它..

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

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


Bootstrap 4没有额外的 CSS选项是使用尺寸调整工具来更改宽度。例如,这里w-100 (width: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

于 2014-04-13T12:23:53.010 回答
37

添加以下css类

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

当然,您可以使用符合您需要的内容。

于 2014-04-13T12:41:00.780 回答
31

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

<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 相匹配,我相信:

在此处输入图像描述

于 2015-09-16T10:43:44.977 回答
9

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

.dropdown-menu {
    white-space: nowrap;
}
于 2018-07-19T09:10:34.603 回答
8

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

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

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

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

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

于 2016-12-27T08:45:54.483 回答
5

通常希望将菜单宽度与下拉父级的宽度相匹配。这可以像这样轻松实现:

.dropdown-menu {
  width:100%;
}
于 2016-07-19T18:48:28.303 回答
5

如果您有 BS4,另一种选择可能是:

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

.dropdown-menu {

    max-height: max-content;
    max-width: max-content;
}
于 2019-10-18T11:45:47.300 回答