首页 文章

select2 - 为输入和下拉设置不同的宽度

提问于
浏览
41

我正在使用Select2 3.3.2

我在选择中有很长的选择 . 例:

<select id="e1">
<option value="AL">Alabama</option>
<option value="WY">Wyoming</option>
<option value="WY">very long long long text</option>
<option value="WY">very long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long long text</option>
</select>

目的是避免在下拉列表打开时包装选项 .

我想在打开时为下拉列表设置长宽度(例如 - 800px,甚至自动评估宽度) .

但是在下拉菜单关闭时保持输入的宽度较短(例如300px) .

我按照select16的"Add option to set dropdown width"问题 .

但我无法使它工作,选项/下拉列表的宽度与输入的宽度和包装到多行的选项相同 .

这是jsfiddle中我的问题的演示 - http://jsfiddle.net/ewwAX/

感谢大家提前帮忙 .

6 回答

  • 2

    我用过它并且它完美无缺,只会影响到所有 select2

    #select2-drop{
        width: 400px !important;
    }
    
  • 57

    您使用的属性不是用于控制下拉宽度 . 您可以使用 dropdownCssClass 属性 .

    Here's a demo in jsFiddle .

    JavaScript

    $(document).ready(function() { 
        $("#e1").select2({dropdownCssClass : 'bigdrop'}); 
    });
    

    CSS

    .bigdrop {
        width: 600px !important;
    }
    
  • 71

    Select2包含'dropdownAutoWidth'参数,该参数使用javascript尝试足够宽的下拉内容 .

    $('#whatever').select2({dropdownAutoWidth : true});
    

    这至少适用于Select2 3.4.3 - 我不知道它早些引入了多少 .

  • 1

    更好的解决方案 . 使用:

    $('#e1').select2({width: 'resolve'});
    
  • 1
    $("#e1").select2({ width: '100%' });
    

    试试这个 . 这会将容器的宽度设置为100%

  • 9

    以下是如何在打开时使select2更宽:

    如果您希望它向右侧扩展,请添加此css:

    .select2-container.select2-dropdown-open {
        width: 170%;
      }
    

    如果你想让它向左扩展,添加这个{

    .select2-container.select2-dropdown-open {
        width: 170%;
        margin-left: -70%;
      }
    

相关问题